Wie bereits erwähnt, müssen wir den Titel, den Autor und die Anzahl der Upvotes der Beiträge abrufen. Beginnen wir damit, die Pakete BeautifulSoup und Pandas zu importieren und drei leere Arrays für jede Art von Information zu erstellen, die wir benötigen.
from bs4 import BeautifulSoup
import pandas as pd
titles = []
upvotes=[]
authors = []
Wir werden BeautifulSoup verwenden, um das HTML-Dokument zu parsen, indem wir die folgenden Zeilen schreiben:
content = driver.page_source
soup = BeautifulSoup(content, features="html.parser")
Nachdem wir das HTML-Dokument erfolgreich analysiert und die richtigen Selektoren ausgewählt haben, holen wir nun die Titel, Upvotes und Autoren ab und weisen sie dem richtigen Array zu:
for element in soup.findAll('div', attrs={'class': '_1oQyIsiPHYt6nx7VOmd1sz'}):
title = element.find('h3', attrs={'class': '_eYtD2XCVieq6emjKBH3m'})
upvote = element.find('div', attrs={'class': '_3a2ZHWaih05DgAOtvu6cIo'})
author = element.find('a', attrs={'class': '_23wugcdiaj44hdfugIAlnX'})
titles.append(title.text)
upvotes.append(upvote.text)
authors.append(author.text)
Schließlich speichern wir die Informationen mithilfe des zuvor importierten Pandas-Pakets in einer CSV-Datei.
df = pd.DataFrame({'Post title': titles, 'Author': authors, 'Number of upvotes': upvotes})
df.to_csv('posts.csv', index=False, encoding='utf-8')
Das war’s! Werfen wir einen Blick auf die exportierte Datei:
Sie scheint alle Informationen zu enthalten, die wir benötigen.
Bonus-Tipp: Manchmal benötigen wir mehr Daten, als die Website beim ersten Laden bereitstellt. Meistens wird das Abrufen der Daten ausgelöst, wenn der Benutzer nach unten scrollt. Wenn Sie nach unten scrollen müssen, um weitere Daten zu erhalten, können Sie die Methode .execute_script() wie folgt verwenden:
scrollDown = "window.scrollBy(0,2000);"
driver.execute_script(scrollDown)
Abschließende Gedanken
Ich hoffe, euch hat das Erstellen des Web-Scrapers genauso viel Spaß gemacht wie mir. Programmieren macht nicht immer Spaß, aber das Erstellen kleiner Skripte wie dieses erinnert mich an meine Anfänge und macht den Prozess viel unterhaltsamer.
Dennoch kann das Skript, das wir in diesem Tutorial erstellt haben, keine besonders anspruchsvollen Aufgaben bewältigen. Es fehlen einige wesentliche Funktionen, die das Web-Scraping erst wirklich reibungslos machen. Die Verbindung über mobile oder private Proxys und das Lösen von CAPTCHAs sind nur zwei davon.
Wenn du nach einer professionelleren Methode zur Datenextraktion suchst, schau dir an, was WebScrapingAPI leisten kann, und überzeuge dich selbst, ob es das Richtige für dich ist. Es gibt ein kostenloses Paket, sodass die einzige Investition 30 Minuten deiner Zeit sind.
Vielen Dank, dass Sie sich die Zeit genommen haben, dies zu lesen. Viel Spaß beim Scraping!