


So extrahieren Sie Daten aus Goodreads mit Python und BeautifulSoup
Web Scraping ist ein leistungsstarkes Tool zum Sammeln von Daten von Websites. Ganz gleich, ob Sie Produktbewertungen sammeln, Preise verfolgen oder, in unserem Fall, Goodreads-Bücher durchsuchen, Web Scraping bietet endlose Möglichkeiten für datengesteuerte Anwendungen.
In diesem Blog-Beitrag erforschen wir die Grundlagen des Web-Scrapings, die Leistungsfähigkeit der Python BeautifulSoup-Bibliothek und erläutern ein Python-Skript, das zum Scraping von Goodreads Choice Awards-Daten entwickelt wurde. Abschließend besprechen wir, wie diese Daten für weitere Analysen oder Anwendungen in einer CSV-Datei gespeichert werden.
Was ist Goodreads?
Goodreads ist die weltweit größte Plattform für Leser und Buchempfehlungen. Es bietet Benutzern Zugriff auf Buchrezensionen, Autorendetails und beliebte Rankings. Jedes Jahr veranstaltet Goodreads die Goodreads Choice Awards, bei denen Leser für ihre Lieblingsbücher aus verschiedenen Genres wie Belletristik, Fantasy, Liebesromanen und mehr abstimmen. Dies macht Goodreads zu einem idealen Ziel für Web Scraping, um Erkenntnisse über angesagte Bücher und Autoren zu sammeln.
Was ist Web Scraping?
Beim Web Scraping werden automatisch Daten von Websites extrahiert. Es ermöglicht Ihnen das Sammeln und Strukturieren von Informationen für Aufgaben wie:
- Trends und Muster analysieren.
- Aggregieren von Inhalten wie Rezensionen oder Artikeln.
- Fütterung von Modellen oder Datenbanken für maschinelles Lernen.
Einrichten Ihrer Umgebung
Bevor Sie in das Skript eintauchen, müssen Sie die erforderlichen Bibliotheken installieren.
-
Python installieren
Stellen Sie sicher, dass Python auf Ihrem System installiert ist.
-
Erforderliche Bibliotheken installieren
Installieren Sie die erforderlichen Bibliotheken mit pip:
Anfrage: Ermöglicht uns, HTTP-Anfragen an eine URL zu senden und den Inhalt der Webseite abzurufen.
BeautifulSoup: Vereinfacht die HTML-Analyse und Datenextraktion.
Sobald diese Installationen abgeschlossen sind, können Sie mit dem Schaben beginnen!
Einführung in BeautifulSoup
BeautifulSoup ist eine Python-Bibliothek zum Parsen von HTML- und XML-Dokumenten. Es ermöglicht Entwicklern, durch Seitenstrukturen zu navigieren, Inhalte zu extrahieren und Roh-HTML in ein strukturiertes Format umzuwandeln.
Schlüsselmethoden in BeautifulSoup
Hier sind einige wesentliche Methoden, die wir in unserem Skript verwenden werden:
- BeautifulSoup(html, 'html.parser'): Initialisiert den Parser und ermöglicht Ihnen die Arbeit mit dem HTML-Inhalt.
- supple.select(selector): Findet Elemente mithilfe von CSS-Selektoren, z. B. Klassen oder Tags.
- supple.find(class_='class_name'): Sucht das erste Vorkommen eines Elements mit einer angegebenen Klasse.
- supple.find_parent(class_='class_name'): Findet das übergeordnete Tag des aktuellen Elements.
- supple.get('attribute'): Ruft den Wert eines Attributs von einem Element ab, wie href oder src.
Eine vollständige Liste der Methoden finden Sie in der BeautifulSoup-Dokumentation.
Einrichten des Skripts
Beginnen wir damit, die notwendigen Bibliotheken zu importieren und benutzerdefinierte Header zu definieren, um einen Browser nachzuahmen. Dies hilft, eine Blockierung durch die Website zu vermeiden.
Scraping-Kategorien und Bücher
Wir beginnen mit der Definition der URLs für die Goodreads‘ Choice Awards-Seite und die Hauptanwendung. Wir senden eine Anfrage an start_url und erhalten den Inhalt der Webseite.
Jede Kategorie enthält ein Genre und einen Link zu der entsprechenden Seite. Mit „soup.select“ extrahieren wir alle unter der Klasse „.category“ aufgeführten Kategorien.
Als nächstes durchlaufen Sie jede Kategorie, um den Genrenamen und die Seiten-URL zu erhalten.
Hier extrahieren wir den Kategorienamen (Genre) und die URL der Kategorieseite zur weiteren Verarbeitung.
Wir senden eine weitere Anfrage an jede Kategorie-URL und suchen alle Bücher unter dieser Kategorie.
category_books enthält die Liste aller Bücher unter der jeweiligen Kategorie.
Buchdaten extrahieren
Sobald wir die Liste der Bücher haben, werden wir jedes Buch durchlaufen und die Daten extrahieren.
Stimmen extrahieren
Wenn wir im DOM sehen, ist die Stimmenzahl im übergeordneten Element des Kategorieelements vorhanden. Wir müssen also die Methode find_parent verwenden, um das Element zu finden und die Abstimmungszahl zu extrahieren.
Buchtitel, Autor und Bild-URL extrahieren
Die URL jedes Buchs, die URL des Coverbilds, der Titel und der Autor werden extrahiert.
Die Funktion „clean_string“ stellt sicher, dass der Titel sauber formatiert ist. Sie können es oben im Skript definieren
Weitere Buchdetails extrahieren
Um weitere Details zum Buch wie Bewertungen, Rezensionen usw. zu erhalten, senden wir eine weitere Anfrage an book_url_formatted.
Hier gibt get_ratings_reviews den Bewertungs- und Rezensionstext gut formatiert zurück.
Sie können diese Funktion oben im Skript definieren.
Durch die Navigation zur Detailseite jedes Buchs werden zusätzliche Informationen wie Bewertungen, Rezensionen und detaillierte Beschreibungen extrahiert. Hier prüfen wir auch, ob das Buchbeschreibungselement vorhanden ist, andernfalls fügen wir eine Standardbeschreibung ein, damit das Skript nicht fehlschlägt.
Hier haben wir auch Autorendetails, Veröffentlichungsinformationen und andere Metadaten gesammelt.
Erstellen Sie ein Buchwörterbuch
Lassen Sie uns alle Daten, die wir für ein Buch extrahiert haben, in einem Wörterbuch speichern.
Wir werden dieses Wörterbuch verwenden, um die Daten in einer CSV-Datei hinzuzufügen.
Speichern von Daten in einer CSV-Datei
Wir werden das CSV-Modul verwenden, das Teil der Standardbibliothek von Python ist. Sie müssen es also nicht separat installieren.
Zuerst müssen wir prüfen, ob dies der erste Eintrag ist. Diese Prüfung ist erforderlich, um den Header in der CSV-Datei in der ersten Zeile hinzuzufügen.
Wir verwenden mode="w", wodurch eine neue CSV-Datei mit dem Header-Eintrag erstellt wird.
Jetzt hängen wir für alle weiteren Einträge die Daten an die CSV-Datei an:
mode="a" hängt die Daten an die CSV-Datei an.
Lehnen Sie sich jetzt zurück, entspannen Sie sich und genießen Sie eine Tasse Kaffee ☕️, während das Skript läuft.
Sobald es fertig ist, sehen die endgültigen Daten so aus:
Den vollständigen Quellcode finden Sie in diesem Github-Repository.
Zusammenfassung
Wir haben gelernt, wie man Goodreads-Daten mit Python und BeautifulSoup crawlt. Angefangen bei der Grundeinrichtung bis hin zum Speichern von Daten in einer CSV-Datei haben wir jeden Aspekt des Scraping-Prozesses untersucht. Die geschabten Daten können verwendet werden für:
- Datenvisualisierung (z. B. die beliebtesten Genres oder Autoren).
- Maschinelle Lernmodelle zur Vorhersage der Buchpopularität.
- Aufbau persönlicher Buchempfehlungssysteme.
Web Scraping eröffnet Möglichkeiten für kreative Datenanalysen und Anwendungen. Mit Bibliotheken wie BeautifulSoup werden selbst komplexe Scraping-Aufgaben bewältigbar. Denken Sie daran, beim Scrapen ethische Praktiken einzuhalten und die Nutzungsbedingungen der Website zu respektieren!
Das obige ist der detaillierte Inhalt vonSo extrahieren Sie Daten aus Goodreads mit Python und BeautifulSoup. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Python zeichnet sich in Gaming und GUI -Entwicklung aus. 1) Spielentwicklung verwendet Pygame, die Zeichnungen, Audio- und andere Funktionen bereitstellt, die für die Erstellung von 2D -Spielen geeignet sind. 2) Die GUI -Entwicklung kann Tkinter oder Pyqt auswählen. Tkinter ist einfach und einfach zu bedienen. PYQT hat reichhaltige Funktionen und ist für die berufliche Entwicklung geeignet.

Python ist leichter zu lernen und zu verwenden, während C leistungsfähiger, aber komplexer ist. 1. Python -Syntax ist prägnant und für Anfänger geeignet. Durch die dynamische Tippen und die automatische Speicherverwaltung können Sie die Verwendung einfach zu verwenden, kann jedoch zur Laufzeitfehler führen. 2.C bietet Steuerung und erweiterte Funktionen auf niedrigem Niveau, geeignet für Hochleistungsanwendungen, hat jedoch einen hohen Lernschwellenwert und erfordert manuellem Speicher und Typensicherheitsmanagement.

Um die Effizienz des Lernens von Python in einer begrenzten Zeit zu maximieren, können Sie Pythons DateTime-, Zeit- und Zeitplanmodule verwenden. 1. Das DateTime -Modul wird verwendet, um die Lernzeit aufzuzeichnen und zu planen. 2. Das Zeitmodul hilft, die Studie zu setzen und Zeit zu ruhen. 3. Das Zeitplanmodul arrangiert automatisch wöchentliche Lernaufgaben.

Python ist in der Entwicklungseffizienz besser als C, aber C ist in der Ausführungsleistung höher. 1. Pythons prägnante Syntax und reiche Bibliotheken verbessern die Entwicklungseffizienz. 2. Die Kompilierungsmerkmale von Compilation und die Hardwarekontrolle verbessern die Ausführungsleistung. Bei einer Auswahl müssen Sie die Entwicklungsgeschwindigkeit und die Ausführungseffizienz basierend auf den Projektanforderungen abwägen.

PythonlistsarePartThestandardlibrary, whilearraysarenot.listarebuilt-in, vielseitig und UNDUSEDFORSPORINGECollections, während dieArrayRay-thearrayModulei und loses und loses und losesaluseduetolimitedFunctionality.

Python zeichnet sich in Automatisierung, Skript und Aufgabenverwaltung aus. 1) Automatisierung: Die Sicherungssicherung wird durch Standardbibliotheken wie OS und Shutil realisiert. 2) Skriptschreiben: Verwenden Sie die PSUTIL -Bibliothek, um die Systemressourcen zu überwachen. 3) Aufgabenverwaltung: Verwenden Sie die Zeitplanbibliothek, um Aufgaben zu planen. Die Benutzerfreundlichkeit von Python und die Unterstützung der reichhaltigen Bibliothek machen es zum bevorzugten Werkzeug in diesen Bereichen.

Ist es genug, um Python für zwei Stunden am Tag zu lernen? Es hängt von Ihren Zielen und Lernmethoden ab. 1) Entwickeln Sie einen klaren Lernplan, 2) Wählen Sie geeignete Lernressourcen und -methoden aus, 3) praktizieren und prüfen und konsolidieren Sie praktische Praxis und Überprüfung und konsolidieren Sie und Sie können die Grundkenntnisse und die erweiterten Funktionen von Python während dieser Zeit nach und nach beherrschen.

Python und C haben jeweils ihre eigenen Vorteile, und die Wahl sollte auf Projektanforderungen beruhen. 1) Python ist aufgrund seiner prägnanten Syntax und der dynamischen Typisierung für die schnelle Entwicklung und Datenverarbeitung geeignet. 2) C ist aufgrund seiner statischen Tipp- und manuellen Speicherverwaltung für hohe Leistung und Systemprogrammierung geeignet.
