--- title: "Web Scraping mit Python: Bücher von Books to Scrape" author: "Dein Name" format: html: toc: true code-tools: true jupyter: python3 --- # Einleitung In diesem Tutorial lernen wir, wie man die Website [Books to Scrape](https://books.toscrape.com/) 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: ```bash 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. ```{python} 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`. ```{python} 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. ```{python} # 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. ```{python} 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](https://books.toscrape.com/) 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. # Weiterführende Ressourcen - [BeautifulSoup-Dokumentation](https://www.crummy.com/software/BeautifulSoup/bs4/doc/) - [Requests-Dokumentation](https://docs.python-requests.org/en/latest/) - [Pandas-Dokumentation](https://pandas.pydata.org/docs/)