Web Scraping z samouczkiem Pythona

Web Scraping z samouczkiem Pythona

Załóżmy, że chcesz zeskrobać witryny konkurencji w celu uzyskania informacji o ich stronach z cenami. Co zrobisz? Kopiowanie i wklejanie lub ręczne wprowadzanie danych jest zbyt wolne, czasochłonne i podatne na błędy. Możesz to łatwo zautomatyzować za pomocą Pythona.

Zobaczmy, jak skrobać strony internetowe za pomocą Pythona w tym samouczku.

Jakie są różne biblioteki web scrapingu w Pythonie?

Python jest popularny do skrobania stron internetowych ze względu na obfitość bibliotek innych firm, które mogą usuwać złożone struktury HTML, analizować tekst i wchodzić w interakcje z formularzem HTML. Tutaj wymieniliśmy kilka najlepszych bibliotek do skrobania stron w Pythonie.

  • Urllib3 to potężna biblioteka kliencka HTTP dla Pythona. Ułatwia to programowe wykonywanie żądań HTTP. Obsługuje nagłówki HTTP, ponowne próby, przekierowania i inne szczegóły niskiego poziomu, co czyni go doskonałą biblioteką do skrobania stron internetowych. Obsługuje również weryfikację SSL, pule połączeń i proxy.
  • PięknaZupa pozwala analizować dokumenty HTML i XML. Możesz łatwo poruszać się po drzewie dokumentów HTML i wyodrębniać tagi, tytuły meta, atrybuty, tekst i inną zawartość za pomocą interfejsu API. BeautifulSoup jest również znany z niezawodnej obsługi błędów.
  • Zupa Mechaniczna skutecznie automatyzuje interakcję między przeglądarką internetową a stroną internetową. Zapewnia interfejs API wysokiego poziomu do skrobania sieci, który symuluje ludzkie zachowanie. Dzięki MechanicalSoup możesz wchodzić w interakcje z formularzami HTML, klikać przyciski i wchodzić w interakcje z elementami jak prawdziwy użytkownik.
  • wnioski to prosta, ale potężna biblioteka Pythona do tworzenia żądań HTTP. Został zaprojektowany tak, aby był łatwy w użyciu i intuicyjny, z czystym i spójnym interfejsem API. Dzięki Requests możesz łatwo wysyłać żądania GET i POST oraz obsługiwać pliki cookie, uwierzytelnianie i inne funkcje HTTP. Jest również szeroko stosowany w skrobaniu sieci ze względu na swoją prostotę i łatwość użycia.
  • Selen pozwala zautomatyzować przeglądarki internetowe, takie jak Chrome, Firefox i Safari, oraz symulować interakcję człowieka ze stronami internetowymi. Możesz klikać przyciski, wypełniać formularze, przewijać strony i wykonywać inne czynności. Służy również do testowania aplikacji internetowych i automatyzacji powtarzalnych zadań.
  • Pandy umożliwiają przechowywanie i manipulowanie danymi w różnych formatach, w tym w bazach danych CSV, Excel, JSON i SQL. Korzystając z Pand, możesz łatwo czyścić, przekształcać i analizować dane wyodrębnione ze stron internetowych.

Wyodrębnij tekst z dowolnej strony internetowej jednym kliknięciem. Udaj się do Skrobak do stron internetowych Nanonets, Dodaj adres URL i kliknij „Scrape” i natychmiast pobierz tekst strony jako plik. Wypróbuj teraz za darmo.

Samouczek dotyczący skrobania sieci Web za pomocą języka Python PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.


Jak zeskrobać dane ze stron internetowych za pomocą Pythona?

Przyjrzyjmy się krok po kroku procesowi używania Pythona do zbierania danych z witryny.

Krok 1: Wybierz witrynę i adres URL strony internetowej

Pierwszym krokiem jest wybranie strony internetowej, którą chcesz zeskrobać. W przypadku tego konkretnego samouczka zróbmy skrobanie https://www.imdb.com/. Postaramy się wyodrębnić dane o najwyżej ocenianych filmach w serwisie.

Krok 2: Sprawdź witrynę

Następnym krokiem jest zrozumienie struktury strony internetowej. Zrozum, jakie są atrybuty elementów, które Cię interesują. Kliknij prawym przyciskiem myszy witrynę, aby wybrać „Sprawdź”. Spowoduje to otwarcie kodu HTML. Użyj narzędzia inspektora, aby zobaczyć nazwy wszystkich elementów, które mają zostać użyte w kodzie.

Samouczek dotyczący skrobania sieci Web za pomocą języka Python PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Zanotuj nazwy klas i identyfikatory tych elementów, ponieważ będą one używane w kodzie Pythona.

Krok 3: Instalowanie ważnych bibliotek

Jak omówiono wcześniej, Python ma kilka bibliotek do skrobania stron internetowych. Dzisiaj będziemy korzystać z następujących bibliotek:

  • wywołań – w celu realizacji zapytań HTTP do serwisu
  • PięknaZupa – do parsowania kodu HTML
  • pandy – do przechowywania zeskrobanych danych w ramce danych
  • czas – za dodanie opóźnienia między żądaniami, aby uniknąć przeciążenia serwisu żądaniami

Zainstaluj biblioteki za pomocą następującego polecenia

pip install requests beautifulsoup4 pandas time

Krok 4: Napisz kod Pythona

Teraz nadszedł czas, aby napisać główny kod Pythona. Kod wykona następujące kroki:

  • Używanie żądań do wysyłania żądania HTTP GET
  • Używanie BeautifulSoup do analizowania kodu HTML
  • Wyodrębnianie wymaganych danych z kodu HTML
  • Przechowuj informacje w ramce danych pandy
  • Dodaj opóźnienie między żądaniami, aby uniknąć przeciążenia witryny żądaniami

Oto kod Pythona do zeskrobywania najwyżej ocenianych filmów z IMDb:

import requests
from bs4 import BeautifulSoup
import pandas as pd
import time
# URL of the website to scrape
url = "https://www.imdb.com/chart/top"
# Send an HTTP GET request to the website
response = requests.get(url)
# Parse the HTML code using BeautifulSoup
soup = BeautifulSoup(response.content, 'html.parser')
# Extract the relevant information from the HTML code
movies = []
for row in soup.select('tbody.lister-list tr'):
title = row.find('td', class_='titleColumn').find('a').get_text()
year = row.find('td', class_='titleColumn').find('span', class_='secondaryInfo').get_text()[1:-1]
rating = row.find('td', class_='ratingColumn imdbRating').find('strong').get_text()
movies.append([title, year, rating])
# Store the information in a pandas dataframe
df = pd.DataFrame(movies, columns=['Title', 'Year', 'Rating'])
# Add a delay between requests to avoid overwhelming the website with requests
time.sleep(1)

Krok 5: Eksportowanie wyodrębnionych danych

Teraz wyeksportujmy dane jako plik CSV. Wykorzystamy bibliotekę pandas.

# Export the data to a CSV file
df.to_csv('top-rated-movies.csv', index=False)

Krok 6: Sprawdź wyodrębnione dane

Otwórz plik CSV, aby sprawdzić, czy dane zostały pomyślnie zeskrobane i zapisane.

Mamy nadzieję, że ten samouczek pomoże Ci łatwo wyodrębnić dane ze stron internetowych.


Wyodrębnij tekst z dowolnej strony internetowej jednym kliknięciem. Udaj się do Skrobak do stron internetowych Nanonets, Dodaj adres URL i kliknij „Scrape” i natychmiast pobierz tekst strony jako plik. Wypróbuj teraz za darmo.

Samouczek dotyczący skrobania sieci Web za pomocą języka Python PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.


Jak analizować tekst ze strony internetowej?

Możesz łatwo analizować tekst strony internetowej za pomocą BeautifulSoup lub lxml. Oto wymagane kroki wraz z kodem.

  • Wyślemy żądanie HTTP na adres URL i pobierzemy zawartość HTML strony.
  • Gdy masz już strukturę HTML, użyjemy metody find() z BeautifulSoup, aby zlokalizować określony znacznik HTML lub atrybut.
  • A następnie wyodrębnij treść tekstową za pomocą atrybutu text.

Oto kod, jak analizować tekst ze strony internetowej za pomocą BeautifulSoup:

import requests
from bs4 import BeautifulSoup
# Send an HTTP request to the URL of the webpage you want to access
response = requests.get("https://www.example.com")
# Parse the HTML content using BeautifulSoup
soup = BeautifulSoup(response.content, "html.parser")
# Extract the text content of the webpage
text = soup.get_text()
print(text)

Jak zeskrobać formularze HTML za pomocą Pythona?

Aby zeskrobać formularze HTML za pomocą Pythona, możesz użyć biblioteki, takiej jak BeautifulSoup, lxml lub mechanize. Oto ogólne kroki:

  1. Wyślij żądanie HTTP na adres URL strony internetowej z formularzem, który chcesz zeskrobać. Serwer odpowiada na żądanie, zwracając zawartość HTML strony internetowej.
  2. Po uzyskaniu dostępu do treści HTML możesz użyć parsera HTML, aby zlokalizować formularz, który chcesz zeskrobać. Na przykład możesz użyć metody find() programu BeautifulSoup, aby zlokalizować znacznik formularza.
  3. Po zlokalizowaniu formularza możesz wyodrębnić pola wejściowe i odpowiadające im wartości za pomocą parsera HTML. Na przykład możesz użyć metody find_all() BeautifulSoup, aby zlokalizować wszystkie znaczniki wejściowe w formularzu, a następnie wyodrębnić ich nazwy i atrybuty wartości.
  4. Dane te możesz następnie wykorzystać do wysłania formularza lub dalszego przetwarzania danych.

Oto przykład, jak zeskrobać formularz HTML za pomocą mechanizacji:


import mechanize
# Create a mechanize browser object
browser = mechanize.Browser()
# Send an HTTP request to the URL of the webpage with the form you want to scrape
browser.open("https://www.example.com/form")
# Select the form to scrape
browser.select_form(nr=0)
# Extract the input fields and their corresponding values
for control in browser.form.controls:
print(control.name, control.value)
# Submit the form
browser.submit()

Wyodrębnij tekst z dowolnej strony internetowej jednym kliknięciem. Przejdź do skrobaka witryny Nanonets, dodaj adres URL i kliknij „Zdrap” i natychmiast pobierz tekst strony internetowej jako plik. Wypróbuj teraz za darmo.

Samouczek dotyczący skrobania sieci Web za pomocą języka Python PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.


Porównanie wszystkich bibliotek web scrapingowych Pythona

Porównajmy wszystkie biblioteki web scrapingu Pythona. Wszystkie mają doskonałe wsparcie społeczności, ale różnią się łatwością użycia i przypadkami użycia, jak wspomniano na początku bloga.

Biblioteka

Łatwość użycia

Wydajność

Elastyczność

Wsparcia Wspólnoty

Względy prawne/etyczne

PięknaZupa

Łatwo

Umiarkowanego

Wysoki

Wysoki

Przestrzegaj warunków użytkowania

Scrapy

Umiarkowanego

Wysoki

Wysoki

Wysoki

Przestrzegaj warunków użytkowania

Selen

Łatwo

Umiarkowanego

Wysoki

Wysoki

Postępuj zgodnie z najlepszymi praktykami

wnioski

Łatwo

Wysoki

Wysoki

Wysoki

Przestrzegaj warunków użytkowania

PyQuery

Łatwo

Wysoki

Wysoki

Wysoki

Przestrzegaj warunków użytkowania

LXML

Umiarkowanego

Wysoki

Wysoki

Wysoki

Przestrzegaj warunków użytkowania

Zupa Mechaniczna

Łatwo

Umiarkowanego

Wysoki

Wysoki

Przestrzegaj warunków użytkowania

PięknaZupa4

Łatwo

Umiarkowanego

Wysoki

Wysoki

Przestrzegaj warunków użytkowania

PySpider

Łatwo

Wysoki

Wysoki

Wysoki

Przestrzegaj warunków użytkowania

Wnioski

Python to doskonała opcja do zgarniania danych z witryny w czasie rzeczywistym. Inną alternatywą jest użycie automatycznego narzędzia do skrobania stron internetowych ljak Nanonets. Możesz użyć darmowe narzędzie do zamiany strony na tekst. Ale jeśli potrzebujesz zautomatyzować skrobanie sieci dla większych projektów, możesz skontaktować się z Nanonets.

Wyodrębnij tekst z dowolnej strony internetowej jednym kliknięciem. Przejdź do skrobaka witryny Nanonets, dodaj adres URL i kliknij „Zdrap” i natychmiast pobierz tekst strony internetowej jako plik. Wypróbuj teraz za darmo.

Samouczek dotyczący skrobania sieci Web za pomocą języka Python PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Najczęściej zadawane pytania

Jak używać parsera HTML do skrobania stron internetowych za pomocą Pythona?

Aby użyć parsera HTML do skrobania stron internetowych w Pythonie, możesz użyć biblioteki, takiej jak BeautifulSoup lub lxml. Oto ogólne kroki:

  1. Wyślij żądanie HTTP na adres URL strony internetowej, do której chcesz uzyskać dostęp. Serwer odpowiada na żądanie, zwracając zawartość HTML strony internetowej.
  2. Po uzyskaniu dostępu do treści HTML można użyć parsera HTML w celu wyodrębnienia potrzebnych danych. Na przykład możesz użyć metody find() programu BeautifulSoup, aby zlokalizować określony znacznik HTML lub atrybut, a następnie wyodrębnić treść tekstową za pomocą atrybutu text.

Oto przykład, jak używać BeautifulSoup do skrobania stron internetowych:

pyton

żądania importu

z bs4 import BeautifulSoup

# Wyślij żądanie HTTP do adresu URL strony internetowej, do której chcesz uzyskać dostęp

odpowiedź = request.get("https://www.example.com")

# Przeanalizuj zawartość HTML za pomocą BeautifulSoup

zupa = BeautifulSoup(response.content, „html.parser”)

# Wyodrębnij określone dane ze strony internetowej

tytuł = zupa.tytuł

drukuj (tytuł)

W tym przykładzie używamy BeautifulSoup do przeanalizowania zawartości HTML strony internetowej i wyodrębnienia tytułu strony za pomocą atrybutu title.

Dlaczego stosuje się Web Scraping?

Web scraping służy do zbierania danych ze stron internetowych za pomocą zautomatyzowanych narzędzi lub skryptów. Może być używany do wielu celów

  • Wyodrębnianie danych z wielu stron internetowych i agregowanie danych w celu dalszej analizy.
  • Wyprowadzanie trendów poprzez pobieranie danych w czasie rzeczywistym z różnych znaczników czasu.
  • Monitorowanie trendów cenowych konkurencji.
  • Generowanie leadów poprzez zgarnianie e-maili ze stron internetowych. 

Co to jest skrobanie stron internetowych?

Skrobanie stron internetowych, którego użyłem do wyodrębnienia ustrukturyzowanych danych z nieustrukturyzowanych stron HTML. Skrobanie sieci polega na użyciu zautomatyzowanego narzędzia do skrobania stron internetowych lub skrypty do analizowania złożonych stron internetowych.

Czy skrobanie stron internetowych jest legalne?

Web scraping jest legalny, gdy próbujesz przeanalizować publicznie dostępne dane na stronie internetowej. Ogólnie rzecz biorąc, web scraping do użytku osobistego lub w celach niekomercyjnych jest legalny. Jednak pobieranie danych chronionych prawem autorskim lub uważanych za poufne lub prywatne może prowadzić do problemów prawnych.

W niektórych przypadkach web scraping może naruszać warunki korzystania ze strony internetowej. Wiele witryn internetowych zawiera warunki, które zabraniają automatycznego zbierania ich treści. Jeśli właściciel witryny odkryje, że ktoś pobiera jego zawartość, może podjąć kroki prawne, aby temu zapobiec.

Dlaczego Python jest dobry do skrobania stron internetowych?

Python jest popularnym językiem programowania do skrobania stron internetowych, ponieważ ma kilka zalet:

  • Python ma prostą i czytelną składnię i jest łatwy do nauczenia dla początkujących.
  • Python ma ogromną społeczność programistów, którzy opracowują narzędzia do różnych zadań, takich jak skrobanie sieci.
  • Python ma wiele bibliotek do skrobania stron internetowych, takich jak Beautiful Soup i Scrapy.
  • Python może wykonywać wiele zadań, takich jak skrobanie, wyodrębnianie danych witryny do programu Excel, interakcji z formularzami HTML i nie tylko.
  • Python jest skalowalny, dzięki czemu nadaje się do skrobania dużych ilości danych.

Jaki jest przykład web scrapingu?

Web scraping to pobieranie danych ze stron internetowych za pomocą zautomatyzowanych skryptów lub narzędzi. Na przykład web scraping służy do zbierania e-maili ze stron internetowych w celu generowania leadów. Innym przykładem skrobania sieci jest wyodrębnianie informacji o cenach konkurencji w celu ulepszenia struktury cenowej.

Czy web scraping wymaga kodowania?

Web scraping konwertuje nieustrukturyzowane dane witryny na ustrukturyzowany format. Oprócz używania kodowania do skrobania stron internetowych, możesz używać narzędzi do skrobania stron internetowych bez kodu, które w ogóle nie wymagają kodowania.

Znak czasu:

Więcej z AI i uczenie maszynowe