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/

Instalacja Pythona

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://www.sublimetext.com/3

https://atom.io/

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.

zmienna python

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.

terminal python

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ć.

kod python

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ć.

lxml

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:

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:

pełny kod python

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:

pobieranie tagu python

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.

Python w środowisku SEO
Ocena: 2.5 z: 27