Web Scraping ist eine grundlegende Technik zum Extrahieren von Informationen aus Websites. Wenn Sie lernen möchten, wie Sie mit Python und BeautifulSoup Daten scrapen, führt Sie dieser Leitfaden Schritt für Schritt durch den Prozess. Am Ende dieses Artikels wissen Sie, wie Sie mehrere Seiten scrapen, dynamische Inhalte verarbeiten und verwenden Proxy Server, um zu verhindern, dass Ihre IP-Adresse preisgegeben wird. Lassen Sie uns direkt loslegen!
Inhaltsverzeichnis
1. Einführung in Web Scraping
Beim Web Scraping werden Daten von Websites mithilfe automatisierter Skripte extrahiert. Diese Technik wird häufig für verschiedene Zwecke verwendet, beispielsweise zur Datenanalyse, Preisüberwachung und Inhaltsaggregation. Python mit seinen leistungsstarken Bibliotheken wie BeautifulSoup und Requests macht Web Scraping unkompliziert und effizient.
2. Einrichten Ihrer Umgebung
Bevor wir mit dem Scraping beginnen, müssen wir unsere Entwicklung Umgebung. Dazu müssen die erforderlichen Bibliotheken installiert werden. So können Sie es tun:
Pip-Installationsanforderungen Beautifulsoup4 Pandas
Diese Bibliotheken sind wichtig:
- Anfragen: Zum Abrufen des Inhalts von Webseiten.
- Schöne Suppe: Zum Analysieren und Extrahieren von Daten aus HTML-Dokumenten.
- Pandas: Zum Speichern und Bearbeiten von Daten.
3. Scraping einer Website mit BeautifulSoup
Sobald Sie die Bibliotheken installiert haben, können Sie mit dem Schreiben Ihres Scraping-Skripts beginnen. Nehmen wir als Beispiel das Scraping einer Website, die Bücher auflistet.
Importieren von Bibliotheken
Importieren von Anfragen aus BS4, Importieren von BeautifulSoup, Importieren von Pandas als PD
Abrufen der Webseite
URL = "http://books.toscrape.com/" Antwort = Anfragen.get(URL) HTML-Inhalt = Antwort.Text
Analysieren des HTML
Suppe = Schöne Suppe(html_Inhalt, 'html.parser')
4. Umgang mit mehreren Seiten
Um mehrere Seiten zu scrapen, müssen Sie die Seiten durchlaufen und die Daten von jeder einzelnen Seite abrufen. So können Sie das tun:
Durch Seiten blättern
base_url = "http://books.toscrape.com/catalogue/page-{}.html" data = [] for page_num in range(1, 51): # Angenommen, es gibt 50 Seiten response = requests.get(base_url.format(page_num)) soup = BeautifulSoup(response.text, 'html.parser') # Buchdaten hier extrahieren und an Datenliste anhängen books = soup.find_all('article', class_='product_pod') for book in books: title = book.h3.a['title'] price = book.find('p', class_='price_color').text stock = book.find('p', class_='instock availability').text.strip() data.append({ "Title": title, "Price": price, "Stock": stock })
5. Verwendung von Proxys zur Vermeidung von IP-Sperren
Websites verfolgen häufig IP-Adressen, um Scraping zu verhindern. Mit einem Proxy Server kann Ihnen helfen, dieses Problem zu vermeiden, indem Ihre IP-Adresse maskiert wird.
Einrichten eines Proxys
Proxys = { "http": "http://Ihr_Proxyserver:Port", "https": "http://Ihr_Proxyserver:Port", } Antwort = Anfragen.get(URL, Proxys=Proxys)
Durch die Verwendung eines Proxys wird Ihr gesamter Datenverkehr über einen anderen Server geleitet, sodass die Zielwebsite Ihre IP-Adresse nicht erkennen kann.
6. Daten im CSV- und Excel-Format speichern
Nachdem Sie die Daten extrahiert haben, möchten Sie sie für weitere Analysen speichern. Sie können Pandas verwenden, um die Daten im CSV- oder Excel-Format zu speichern.
Daten im CSV-Format speichern
df = pd.DataFrame(Daten) df.to_csv('Bücher.csv', Index=Falsch)
Speichern von Daten in Excel
df.to_excel('Bücher.xlsx', Index=Falsch)
Beispieltabelle mit extrahierten Daten
Titel | Preis | Aktie |
---|---|---|
Der große Plan | £13.76 | Auf Lager |
Der Fänger im Roggen | £5.95 | Auf Lager |
Schöne neue Welt | £39.74 | Auf Lager |
7. Fazit
Web Scraping mit Python und BeautifulSoup ist eine leistungsstarke Technik zum Extrahieren von Daten von Websites. Wenn Sie dieser Anleitung folgen, sollten Sie in der Lage sein, mehrere Seiten zu scrapen, dynamische Inhalte zu verarbeiten und Proxys zu verwenden, um IP-Sperren zu vermeiden. Denken Sie daran, vor dem Scraping immer die Nutzungsbedingungen der Website zu prüfen und die Daten verantwortungsbewusst zu verwenden.