Jednym z bardzo czasochłonnych wyzwań wśród specjalistów, jest ciągłe nadzorowanie stron klientów lub własnych. Niejednokrotnie zdarza się, że na stronie zostaną dokonane zmiany, kluczowe w kontekście SEO oraz niestety nie zostaniemy o nich poinformowani na czas. Pierwszym sygnałem informujących nas, że coś zostało zmienione, mogą być zarówno spadki, jak i wzrosty w widoczności. Warto zaznaczyć, że ręczne weryfikowanie zmian na stronie lub chociażby codzienne crawle serwisu zajmą nam ogromną ilość czasu, który moglibyśmy poświęcić na bardziej rozwojowe działania.
Na szczęście mamy wiele możliwości automatyzacji naszej pracy, chociażby wykorzystując bardzo popularny soft, jakim jest Zennoposter, o którym niejednokrotnie pisałem. Najtańszy pakiet licencyjny można nabyć już za 87$, natomiast jeśli chcemy faktycznie wykorzystać jego możliwości, musimy liczyć się z kwotami rzędu 200-400 USD, co przy dożywotniej licencji i kosztach programowania nie jest dużym wydatkiem.
Automatyzacja „za darmo”
Co w przypadku gdy nie chcemy wydawać wyżej wspomnianej sumy, a mamy chęci, aby samemu coś stworzyć i zdobyć nowe kompetencje?
Idealnym rozwiązaniem, a właściwie językiem programowania będzie bardzo popularny w ostatnich latach – Python (język wysokiego poziomu) z rozbudowaną gamą bibliotek. Jeśli nigdy nie programowałeś/aś nie przejmuj się. Już po krótkim zapoznaniu się z tym językiem, będziesz mógł/mogła stworzyć swój pierwszy, a co najważniejsze przydatny i darmowy program (nie licząc wysiłku i czasu włożonego w jego stworzenie).
Założenia aplikacji
Celem aplikacji jest codzienne uruchamianie wybranej przez nas strony internetowej i pobieranie z niej znaczników meta title oraz meta description, a następnie informowanie nas w przypadku, gdy znaczniki meta będą inne niż w poprzednim dniu. Nasz program będziemy mogli rozbudować do funkcjonalności pomagających pobierać setki podstron z wybranych witryn ze szczegółowymi informacjami o meta danych, nagłówkach, hreflangach, canonicalach i informowaniu nas o zmianie jakiegokolwiek elementu. Brzmi ciekawie – zaczynajmy!
Instalacja Pythona w wersji 3.7.2
Kluczowym elementem, aby nasz kod był interpretowalny przez komputer, będzie instalacja Pythona w wersji 3.7.2 w zależności od posiadanego systemu operacyjnego. W moim przypadku będzie to kopia dla wersji Windowsa. Możemy pobrać ją pod poniższym linkiem:
https://www.python.org/downloads/
Nie będę przedstawiał samego procesu instalacji, ponieważ jest niezwykle prosty, a szczegółowe informacje oraz nagrania możemy znaleźć w serwisie Youtube.
Edytor kodu
Aby wygodnie tworzyło nam się kod naszej aplikacji, konieczne będzie zainstalowanie edytora kodu. Jest to temat rzeka, niemniej jednak z darmowych polecam Sublime Text 3, Atom lub Visual Studio Code (z którego obecnie korzystam).
Linki do pobrania:
https://code.visualstudio.com/
Zaczynamy
Zaczynamy od stworzenia nowego pliku z rozszerzeniem Pythona (.py). Wybieramy z menu File > New File lub klikamy CTR+N.
Następnie zapisujemy plik i wybieramy mu nazwę roboczą.
Kolejnym krokiem będzie, aby nasz skrypt uruchomił wybraną przez nas stronę, z której chcemy pobierać znacznik meta title oraz description. W ramach artykułu będziemy pobierać dane ze strony: https://wolfbrothers.net/.
Zacznijmy od zdefiniowania zmiennej, czyli potocznie mówiąc pojemnika na dane, z którego skrypt będzie pobierał informację. Naszą zmienną nazwiemy „url” i przypiszemy do zmiennej adres url wybranej przez nas strony internetowej.
Znak „=” powoduje to, że do zmiennej przypisujemy daną wartość, w tym przypadku będzie to zmienna tekstowa (String), zawierająca adres URL. W celu sprawdzenia czy faktycznie pod tą zmienna, spotkamy przypisaną wartość, możemy skorzystać z wydrukowania wartości w konsoli / terminalu za pomocą linijki print(nazwa_zmiennej) > print(url). Wystarczy teraz w terminalu wpisać python skaner.py, aby uruchomić nasz skrypt.
Jak można zauważyć pod zmienną kryje się przypisana przez nas wartość.
Teraz potrzebujemy mechanizmu, który pobiera cały kod wybranej przez nas strony, abyśmy mogli następnie wyciągnąć meta title oraz meta description. Wykorzystamy w tym wypadku dwie biblioteki requests oraz bs4, które mają na celu pobranie kodu strony i wyciągnięciu dla nas istotnych informacji. Aby zainstalować powyższe biblioteki na naszym komputerze, w terminalu wpisujemy następująco:
pip install requests
Klikamy klawisz Enter i czekamy, aż się zainstaluje, a następnie:
pip install bs4
Poniżej dodałem kilka linijek kodu, które zaraz postaram się objaśnić.
Pierwsze dwie to importy zainstalowanych przed chwilą bibliotek, tak abyśmy mogli z nich korzystać w obecnym projekcie. Następnie mamy zdefiniowaną zmienną „url”, pod którą kryje się przypisany adres url strony.
Kolejno musimy połączyć się z wybranym adresem internetowym. Definiujemy zmienną np. „r” od słowa request i przypisujemy metodę requests.get(url). Jest to gotowe zapytanie, które znajdziemy w dokumentacji. Następnie po stworzeniu połączenia, potrzebujemy pobrać kod źródłowy strony. Pomocna będzie tutaj biblioteka BeautifulSoup (bs4).
Tworzymy nową zmienną np. „html”, w której będziemy trzymać cały kod źródłowy strony. Następnie definiujemy metodę, aby pobrała nam całą zawartość.
bs4.BeautifulSoup(r.text,’lxml’)
Jeśli zastanawiasz się, czym jest argument ‘lxml’, to nic innego jak rodzaj parsera, który pobiera nam kod źródłowy. Beautifulsoup oferuje cztery różne parsery, każdy ma swoje zalety oraz wady, co ukazuje poniższa tabela. W obecnej chwili nie musisz się tym przejmować.
Pozostała ostatnia linijka kodu:
print(html.title.text)
Jak już wiesz, komenda print służy do wyświetlania zawartości danej zmiennej w terminalu. Jednak zastanówmy się, co właściwie jest w środku:
html.title.text
html – to nasza zmienna, w której mamy cały kod źródłowy pobranej strony
Tworząc konstrukcję html.title, wskazujemy bibliotece, że z całego kodu strony potrzebujemy pobrać znacznik title. Spróbujmy więc wywołać samo print(html.title)
Rezultat:
Otrzymaliśmy wprawdzie tag title, ale w formie HTML’a. Aby uzyskać wewnętrzną treść, wystarczy dopisać html.title.text
Wywołajmy teraz cały obecny kod:
W jaki sposób pobrać meta description:
Aby pobrać ten tag, musimy wykorzystać trochę inne właściwości biblioteki. W tym celu wprowadźmy następujące dwie linijki kodu:
meta_description = html.find(‘meta’, attrs={‘name’: ‘description’})
meta_description – jest to dowolna zmienna, w której będziemy trzymać okrojony kod źródłowy strony
html.find – sugeruje że będziemy szukać danych elementów w zmiennej html, gdzie posiadamy cały kod źródłowy strony.
html.find(‘meta’, attrs={‘name’: ‘description’}) – nastepnie podajemy pierwszy argument, czyli szukamy znacznika „meta”, który ma nazwę description.
Jak można zauważyć mamy trochę inną formę printu:
print(meta_description[‘content’])
Jeśli wywołamy samą zmienną tj. meta_description otrzymamy treść w formie HTML’a, jeśli natomiast chcemy wykorzystać tylko zawartość tagu, konieczne będzie dopisanie [‘content’]. W przypadku meta title było łatwiej, ponieważ wystarczyło podać .text.
Podsumowanie
W tym artykule udało nam się zainstalować edytor kodu, interpreter Pythona oraz stworzyć podwaliny programu, który będzie automatyzował naszą pracę. Aby nie tworzyć artykułu tasiemca, w kolejnych częściach zgłębimy wiedze jeszcze bardziej, powiemy sobie jak uniknąć sytuacji, gdy dana strona blokuje dostęp naszego skryptu. Zaczniemy pracę nad zapisywaniem danych do pliku txt lub excela i informowaniu o zmianach w meta danych. Mam nadzieję, że chociaż trochę zaciekawiłem cię tematyką programowania, która w najbliższych latach jeszcze bardziej będzie się rozwijała. Co więcej, okazuje się niezwykle pomocna w codziennych czynnościach specjalistów.

CO-Founder at WolfBrothers. Z branżą SEO związany już 4 lata. Zwolennik automatyzacji wszelkich procesów powtarzalnych. Pasjonat rynków finansowych. Dzień zaczyna od dobrej kawy, po której SEO robi się samo.