Bücherkatalog scrapen

Eine Anleitung zum Scraping von Büchern von der Website Books to Scrape, einschließlich Python-Beispielen und Datenexport.

Einleitung

In diesem Tutorial lernen wir, wie man die Website Books to Scrape mit Python und BeautifulSoup scrapt. Diese Seite dient oft als Beispiel für Web-Scraping, da sie eine einfache Struktur hat und keine komplexen Schutzmaßnahmen gegen Scraping implementiert.

Voraussetzungen

Stellen Sie sicher, dass Sie die folgenden Python-Bibliotheken installiert haben:

! pip install requests beautifulsoup4 pandas

Scraping der Buchdaten

Schritt 1: HTML-Inhalt abrufen

Zuerst verwenden wir die requests-Bibliothek, um den HTML-Inhalt der Seite abzurufen.

import requests

# URL der Website
url = "https://books.toscrape.com/"

# HTML-Inhalt abrufen
response = requests.get(url)

# Überprüfen, ob die Anfrage erfolgreich war
if response.status_code == 200:
    print("HTML-Inhalt erfolgreich abgerufen.")
else:
    print(f"Fehler beim Abrufen der Seite: {response.status_code}")

Schritt 2: HTML mit BeautifulSoup parsen

Jetzt parsen wir den abgerufenen HTML-Inhalt mit BeautifulSoup.

from bs4 import BeautifulSoup

# HTML-Inhalt parsen
soup = BeautifulSoup(response.text, 'html.parser')

# Überprüfen des Titels der Seite
print(soup.title.string)

Schritt 3: Daten extrahieren

Wir extrahieren nun die Titel und Preise der Bücher.

# Listen zur Speicherung der Daten
book_titles = []
book_prices = []

# Alle Buchcontainer finden
books = soup.find_all('article', class_='product_pod')

# Daten extrahieren
for book in books:
    title = book.h3.a['title']  # Titel des Buches
    price = book.find('p', class_='price_color').text  # Preis des Buches
    book_titles.append(title)
    book_prices.append(price)

# Daten anzeigen
for title, price in zip(book_titles, book_prices):
    print(f"{title}: {price}")

Schritt 4: Daten in einem DataFrame speichern

Um die extrahierten Daten zu speichern, verwenden wir pandas, um sie in einem DataFrame zu organisieren.

import pandas as pd

# DataFrame erstellen
books_df = pd.DataFrame({
    'Title': book_titles,
    'Price': book_prices
})

# DataFrame anzeigen
print(books_df.head())

Fazit

In diesem Tutorial haben wir gelernt, wie man die Website Books to Scrape mit Python und BeautifulSoup scrapt. Wir haben die Titel und Preise der Bücher extrahiert und in einem DataFrame gespeichert. Dieses Beispiel kann als Grundlage für komplexere Scraping-Projekte dienen.