Otwórz sobie drzwi do kariery programisty     |       -40% na ścieżki kariery     |      Jeszcze przez:

1 dni 18 godzin
close
Cart icon
User menu icon
User icon
Skontaktuj się z nami:
+48 888-916-333
Lightbulb icon
Jak to działa?
FAQ icon
FAQ
Contact icon
Kontakt
Terms of service icon
Regulamin zakupów
Privacy policy icon
Polityka prywatności
Web scraping w Pythonie: tutorial dla początkującychWeb scraping w Pythonie: tutorial dla początkujących

Web scraping w Pythonie: tutorial dla początkujących

Web scraping to technika, która pozwala na szybkie i automatyczne pobieranie danych ze stron internetowych. W tym artykule pokażemy Ci, jak łatwo możesz zacząć przygodę z web scraping w popularnym języku Python.

Niezbędne biblioteki i narzędzia

Na początek będziesz potrzebować kilku bibliotek Pythona.

  • Requests: do wysyłania zapytań HTTP i pobierania stron internetowych
  • BeautifulSoup: do parsowania HTML i wyciągania interesujących nas danych.

Biblioteki możesz zainstalować w następujący sposób:


pip install requests beautifulsoup4

 

Web scraping krok po kroku

 

Pobieranie zawartości strony

 

Pierwszym krokiem będzie wysłanie żądania do interesującej nas strony internetowej. Chcemy pobrać zawartość tej strony. Użyjemy do tego biblioteki Requests.

import requests


url = 'https://example.com'

response = requests.get(url)


if response.status_code == 200:

    page_content = response.text

    print("Strona została pobrana pomyślnie.")

else:

    print(f"Nie udało się pobrać strony. Kod statusu: {response.status_code}")

 

Kod jest dość prosty. Wskazujemy url strony, i jeśli odpowiedź z serwera jest prawidłowa, to zapisujemy zawartość do zmiennej page_content.

Przetwarzanie zawartości strony

Teraz użyjemy biblioteki BeautifulSoup. Za jej pomocą możemy przeszukiwać strukturę HTML z pobranej strony. Popatrz na przykładowy kod, który wyciąga tytuł strony i wypisuje go do konsoli:

from bs4 import BeautifulSoup


soup = BeautifulSoup(page_content, 'html.parser')


title = soup.title.string

print("Tytuł strony:", title)

 

Jeśli chcesz wyciągnąć zawartość określonego elementu na stronie, to możesz użyć selektorów CSS lub metod takich jak find oraz find_all. Poniżej mamy przykład demonstrujący wyszukiwanie wszystkich linków na stronie:

 

links = soup.find_all('a')


for link in links:

    print(link.get('href'))

Przykład - pobieranie tytułów z bloga

Teraz zajmiemy się przykładem, który połączy w całość opisane powyżej techniki. Zakładamy, że istnieje jakiś blog i chcemy z niego pobrać tytuły wszystkich artykułów. Zakładamy też, że lista artykułów znajduje się na stronie głównej i każdy tytuł jest ma taką samą klasę w kodzie HTML.

Najpierw pobierzemy stronę główną:

import requests

from bs4 import BeautifulSoup


url = 'https://example-blog.com'

response = requests.get(url)

soup = BeautifulSoup(response.text, 'html.parser')

A teraz wyszukamy wszystkie tytuły. Przypominamy, że są to elementy H2, z odpowiednią klasą (“post-title”):

articles = soup.find_all('h2', class_='post-title')


for article in articles:

    title = article.text

    print("Tytuł artykułu:", title)

Warto zauważyć, że w naszym prosty przykładzie używamy funkcji print, aby wyprowadzić do konsoli interesujące nas treści.

Warto zauważyć, że w naszym prosty przykładzie używamy funkcji print, aby wyprowadzić do konsoli interesujące nas treści.

Podsumowanie

Python świetnie się nadaje do web scraping bo oferuje proste w użyciu biblioteki. Jeśli zamierzasz z nich korzystać, nie zapominaj o ważnych aspektach prawnych i etycznych. Pobieranie zawartości zewnętrznej strony może się wiązać z pewnymi konsekwencjami, o czym pisaliśmy w tym artykule.