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}")
HTML-Inhalt erfolgreich abgerufen.

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)

    All products | Books to Scrape - Sandbox

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}")
A Light in the Attic: £51.77
Tipping the Velvet: £53.74
Soumission: £50.10
Sharp Objects: £47.82
Sapiens: A Brief History of Humankind: £54.23
The Requiem Red: £22.65
The Dirty Little Secrets of Getting Your Dream Job: £33.34
The Coming Woman: A Novel Based on the Life of the Infamous Feminist, Victoria Woodhull: £17.93
The Boys in the Boat: Nine Americans and Their Epic Quest for Gold at the 1936 Berlin Olympics: £22.60
The Black Maria: £52.15
Starving Hearts (Triangular Trade Trilogy, #1): £13.99
Shakespeare's Sonnets: £20.66
Set Me Free: £17.46
Scott Pilgrim's Precious Little Life (Scott Pilgrim #1): £52.29
Rip it Up and Start Again: £35.02
Our Band Could Be Your Life: Scenes from the American Indie Underground, 1981-1991: £57.25
Olio: £23.88
Mesaerion: The Best Science Fiction Stories 1800-1849: £37.59
Libertarianism for Beginners: £51.33
It's Only the Himalayas: £45.17

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())
                                   Title    Price
0                   A Light in the Attic  £51.77
1                     Tipping the Velvet  £53.74
2                             Soumission  £50.10
3                          Sharp Objects  £47.82
4  Sapiens: A Brief History of Humankind  £54.23

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.