suchen
HeimBackend-EntwicklungPython-TutorialSo 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.

  1. Python installieren

    Stellen Sie sicher, dass Python auf Ihrem System installiert ist.

  2. 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.

How to Scrape Data From Goodreads Using Python and BeautifulSoup

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.

How to Scrape Data From Goodreads Using Python and BeautifulSoup

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.

How to Scrape Data From Goodreads Using Python and BeautifulSoup

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:

How to Scrape Data From Goodreads Using Python and BeautifulSoup

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!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
So verwenden Sie Python, um die ZiPF -Verteilung einer Textdatei zu findenSo verwenden Sie Python, um die ZiPF -Verteilung einer Textdatei zu findenMar 05, 2025 am 09:58 AM

Dieses Tutorial zeigt, wie man Python verwendet, um das statistische Konzept des Zipf -Gesetzes zu verarbeiten, und zeigt die Effizienz des Lesens und Sortierens großer Textdateien von Python bei der Bearbeitung des Gesetzes. Möglicherweise fragen Sie sich, was der Begriff ZiPF -Verteilung bedeutet. Um diesen Begriff zu verstehen, müssen wir zunächst das Zipf -Gesetz definieren. Mach dir keine Sorgen, ich werde versuchen, die Anweisungen zu vereinfachen. Zipf -Gesetz Das Zipf -Gesetz bedeutet einfach: In einem großen natürlichen Sprachkorpus erscheinen die am häufigsten vorkommenden Wörter ungefähr doppelt so häufig wie die zweiten häufigen Wörter, dreimal wie die dritten häufigen Wörter, viermal wie die vierten häufigen Wörter und so weiter. Schauen wir uns ein Beispiel an. Wenn Sie sich den Brown Corpus in amerikanischem Englisch ansehen, werden Sie feststellen, dass das häufigste Wort "Th ist

Wie benutze ich eine schöne Suppe, um HTML zu analysieren?Wie benutze ich eine schöne Suppe, um HTML zu analysieren?Mar 10, 2025 pm 06:54 PM

In diesem Artikel wird erklärt, wie man schöne Suppe, eine Python -Bibliothek, verwendet, um HTML zu analysieren. Es beschreibt gemeinsame Methoden wie find (), find_all (), select () und get_text () für die Datenextraktion, die Behandlung verschiedener HTML -Strukturen und -Anternativen (SEL)

Bildfilterung in PythonBildfilterung in PythonMar 03, 2025 am 09:44 AM

Der Umgang mit lauten Bildern ist ein häufiges Problem, insbesondere bei Mobiltelefonen oder mit geringen Auflösungskamera-Fotos. In diesem Tutorial wird die Bildfilterungstechniken in Python unter Verwendung von OpenCV untersucht, um dieses Problem anzugehen. Bildfilterung: Ein leistungsfähiges Werkzeug Bildfilter

Einführung in die parallele und gleichzeitige Programmierung in PythonEinführung in die parallele und gleichzeitige Programmierung in PythonMar 03, 2025 am 10:32 AM

Python, ein Favorit für Datenwissenschaft und Verarbeitung, bietet ein reichhaltiges Ökosystem für Hochleistungs-Computing. Die parallele Programmierung in Python stellt jedoch einzigartige Herausforderungen dar. Dieses Tutorial untersucht diese Herausforderungen und konzentriert sich auf die globale Interprete

Wie führe ich ein tiefes Lernen mit Tensorflow oder Pytorch durch?Wie führe ich ein tiefes Lernen mit Tensorflow oder Pytorch durch?Mar 10, 2025 pm 06:52 PM

Dieser Artikel vergleicht TensorFlow und Pytorch für Deep Learning. Es beschreibt die beteiligten Schritte: Datenvorbereitung, Modellbildung, Schulung, Bewertung und Bereitstellung. Wichtige Unterschiede zwischen den Frameworks, insbesondere bezüglich des rechnerischen Graps

So implementieren Sie Ihre eigene Datenstruktur in PythonSo implementieren Sie Ihre eigene Datenstruktur in PythonMar 03, 2025 am 09:28 AM

Dieses Tutorial zeigt, dass eine benutzerdefinierte Pipeline -Datenstruktur in Python 3 erstellt wird, wobei Klassen und Bedienerüberladungen für verbesserte Funktionen genutzt werden. Die Flexibilität der Pipeline liegt in ihrer Fähigkeit, eine Reihe von Funktionen auf einen Datensatz GE anzuwenden

Serialisierung und Deserialisierung von Python -Objekten: Teil 1Serialisierung und Deserialisierung von Python -Objekten: Teil 1Mar 08, 2025 am 09:39 AM

Serialisierung und Deserialisierung von Python-Objekten sind Schlüsselaspekte eines nicht trivialen Programms. Wenn Sie etwas in einer Python -Datei speichern, führen Sie eine Objektserialisierung und Deserialisierung durch, wenn Sie die Konfigurationsdatei lesen oder auf eine HTTP -Anforderung antworten. In gewisser Weise sind Serialisierung und Deserialisierung die langweiligsten Dinge der Welt. Wen kümmert sich um all diese Formate und Protokolle? Sie möchten einige Python -Objekte bestehen oder streamen und sie zu einem späteren Zeitpunkt vollständig abrufen. Dies ist eine großartige Möglichkeit, die Welt auf konzeptioneller Ebene zu sehen. Auf praktischer Ebene können das von Ihnen ausgewählte Serialisierungsschema, Format oder Protokoll jedoch die Geschwindigkeit, Sicherheit, den Status der Wartungsfreiheit und andere Aspekte des Programms bestimmen

Mathematische Module in Python: StatistikMathematische Module in Python: StatistikMar 09, 2025 am 11:40 AM

Das Statistikmodul von Python bietet leistungsstarke Datenstatistikanalysefunktionen, mit denen wir die allgemeinen Merkmale von Daten wie Biostatistik und Geschäftsanalyse schnell verstehen können. Anstatt Datenpunkte nacheinander zu betrachten, schauen Sie sich nur Statistiken wie Mittelwert oder Varianz an, um Trends und Merkmale in den ursprünglichen Daten zu ermitteln, die möglicherweise ignoriert werden, und vergleichen Sie große Datensätze einfacher und effektiv. In diesem Tutorial wird erläutert, wie der Mittelwert berechnet und den Grad der Dispersion des Datensatzes gemessen wird. Sofern nicht anders angegeben, unterstützen alle Funktionen in diesem Modul die Berechnung der Mittelwert () -Funktion, anstatt einfach den Durchschnitt zu summieren. Es können auch schwimmende Punktzahlen verwendet werden. zufällig importieren Statistiken importieren Aus Fracti

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung