In diesem Blog erfahren Sie, wie Sie TikTok-Kommentare scrapen können. Wenn Sie ein ausführliches Tutorial zu TikTok scrapen Daten finden Sie in unserem Leitfaden zu 'So scrapen Sie TikTok'.

Im Jahr 2024 hat TikTok mehr als 4 Milliarden Downloads weltweit, was es zu einer der am schnellsten wachsenden Social-Media-Plattformen der letzten Zeit macht. Menschen jeden Alters, von Teenagern über junge Erwachsene bis hin zu älteren Menschen, nutzen es, was zu seiner enormen Popularität und seinem Einfluss auf die Kultur beiträgt.

TikTok-Statistiken nach Alter und Geschlecht

Kommentare zu TikTok-Videos geben Einblicke in das Engagement, die Stimmung, Trends und vieles mehr der Benutzer. TikTok-Kommentardaten ermöglichen es Forschern, Vermarktern und Datenbegeisterten, Benutzerinteraktionen zu untersuchen, trendige Inhalte zu identifizieren und ein besseres Verständnis der lebendigen TikTok-Community zu erlangen.

Beginnen wir also mit dem Scrapen von TikTok-Kommentaren in Python.

Inhaltsverzeichnis

  1. Grundlagen des TikTok-Kommentar-Scrapers
  2. Einrichten der Python-Umgebung und Installieren der erforderlichen Bibliotheken
  3. HTML für TikTok-Videokommentare extrahieren
  4. Extrahieren Sie TikTok-Kommentare im JSON-Format
  5. Paginierung in TikTok-Kommentaren Scraping handhaben
  6. Gespeicherte TikTok-Kommentardaten speichern
  7. Vollständiger Code mit Seitennummerierung und Speicherung
  8. Häufig gestellte Fragen (FAQs)

1. Grundlagen des TikTok-Kommentar-Scrapers

Für dieses Tutorial benötigen Sie Grundkenntnisse in Python, HTML und CSS. Zweitens: Setup Crawlbase Crawling API um Kommentare von TikTok zu scrapen. Alles was Sie tun müssen ist Anmeldungen zu Crawlbase und Sie erhalten 1000 kostenlose Anfragen zum kostenlosen Scrapen von TikTok-Kommentaren.

Fahren Sie in Richtung Kontodokumentation um Ihr Token zu erhalten.

Kontodokumentation

In Ihrem Dashboard finden Sie zwei Arten von Token. Der normale Token ist für normale Websites und der JS-Token für Websites mit viel dynamischem oder JavaScript-Inhalt. Da TikTok viel JavaScript verwendet, verwenden wir den JS-Token.

Stellen Sie nun für das Python-Setup sicher, dass Sie Python installiert haben. Sie können Python von der offiziellen Python-Website basierend auf Ihrem Betriebssystem. Stellen Sie außerdem sicher, dass Sie pip, den Python-Paketmanager, installiert haben, um die erforderlichen Bibliotheken und Abhängigkeiten zu installieren.

Jetzt sind Sie gut gerüstet, um mit dem Scraping von TikTok-Videokommentaren mit Python und der Crawlbase zu beginnen Crawling API.

2. Richten Sie die Python-Umgebung ein und installieren Sie die erforderlichen Bibliotheken

Um mit dem Scraping von TikTok-Videokommentaren zu beginnen, befolgen Sie diese Schritte, um Ihre Projektumgebung einzurichten:

Python-Installation: Wenn Sie Python noch nicht von der offiziellen Python-Website heruntergeladen und installiert haben, fügen Sie es während der Installation unbedingt zum PATH Ihres Systems hinzu. Sie können die Installation überprüfen, indem Sie eine Eingabeaufforderung oder ein Terminal öffnen und den folgenden Befehl ausführen:

1
Python --Version

Wenn Python korrekt installiert ist, wird die installierte Versionsnummer angezeigt.

Erstellen einer neuen Python-Umgebung: Es wird empfohlen, in einer virtuellen Umgebung zu arbeiten, um Projektabhängigkeiten zu verwalten. Erstellen Sie mit den folgenden Befehlen eine neue virtuelle Umgebung:

1
2
3
4
5
6
7
8
# Erstellen Sie eine neue virtuelle Umgebung
python -m venv meine Umgebung

# Aktivieren Sie die virtuelle Umgebung
# Unter Windows
myenv\Scripts\activate
# Unter macOS/Linux
Quelle myenv/bin/activate

Installieren Sie die erforderlichen Bibliotheken: Installieren Sie die erforderlichen Python-Bibliotheken für Web Scraping und Datenextraktion. Zu den wichtigsten Bibliotheken gehören requests, beautifulsoup4 und crawlbaseSie können diese Bibliotheken mit pip, dem Python-Paketmanager, installieren:

1
Pip-Installationsanforderungen beautifulsoup4 crawlbase

Initialisieren von Projektdateien: Erstellen Sie eine neue Python-Skriptdatei tiktok_comments_scraper.py für Ihr TikTok-Kommentar-Scraping-Projekt. Sie können jeden Texteditor oder jede integrierte Entwicklungsumgebung (IDE) Ihrer Wahl verwenden, um Ihren Python-Code zu schreiben.

Nachdem Sie Ihre Projektumgebung eingerichtet und die Bibliotheken installiert haben, können Sie mit dem Scraping von TikTok-Videokommentaren beginnen. Fahren wir mit dem nächsten Schritt fort.

3. HTML aus TikTok-Videokommentaren extrahieren

Um mit dem Scraping von TikTok-Videokommentaren zu beginnen, müssen wir den HTML-Inhalt der TikTok-Seite abrufen, auf der sich die Kommentare befinden. Dafür gibt es zwei gängige Ansätze: die Verwendung eines Standard-HTTP-Anforderungsbibliothek Gefällt mir requests oder über die Crawlbase Crawling API..

Extrahieren von HTML-Code für TikTok-Kommentare mit Common Approach

Im allgemeinen Ansatz verwenden wir Python-Bibliotheken wie requests um den HTML-Inhalt der TikTok-Videoseite abzurufen. Hier ist ein einfaches Beispiel, wie Sie dies erreichen können:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
importieren Zugriffe

# Funktion zum Abrufen von HTML mithilfe von Anfragen
def fetch_html(URL):
versuchen:
Antwort = Anfragen.get(URL)
if Antwort.Statuscode == 200:
Rückkehr Antworttext
sonst:
drucken(f"HTML konnte nicht abgerufen werden. Statuscode: {response.status_code}")
Rückkehr Keine
ausgeschlossen Exception as e:
drucken(f"Ein Fehler ist aufgetreten: {str(e)}")
Rückkehr Keine

# Beispielverwendung
tiktok_url = „https://www.tiktok.com/@khaby.lame/video/7255327059302419738“
html_Inhalt = fetch_html(tiktok_url)
if HTML-Inhalt:
drucken(HTML-Inhalt)

Kopieren Sie den obigen Code in Ihr tiktok_comments_scraper.py Datei und führen Sie den folgenden Befehl in dem Verzeichnis aus, in dem sich die Datei befindet.

1
Python tiktok_comments_scraper.py

Sie werden sehen, dass das HTML der Seite auf dem Terminal ausgedruckt wird.

Gemeinsamer Ansatz – HTML-Ausgabe

Aber warum enthält das HTML keine nützlichen Informationen? Das liegt daran, dass TikTok auf JavaScript-Rendering angewiesen ist, um wichtige Daten dynamisch zu laden. Leider kann der Zugriff auf diese Daten mit herkömmlichen Scraping-Methoden schwierig sein.

Einschränkungen bei gängigen Scraping-Ansätzen

Der übliche Ansatz zum Abrufen von HTML mithilfe von Bibliotheken wie requests Beim Scraping von TikTok-Videokommentaren kann es zu Einschränkungen kommen. Einige der Probleme bei diesem Ansatz sind:

Häufige Probleme beim Web Scraping-Ansatz
  1. Eingeschränkte JavaScript-Ausführung: Standard-HTTP-Anfragen führen kein JavaScript aus, was bedeutet, dass dynamisch geladene Inhalte, wie z. B. Kommentare zu TikTok-Videos, möglicherweise nicht genau erfasst werden.
  2. Unvollständiger Datenabruf: TikTok-Seiten laden Kommentare oft asynchron oder über AJAX-Anfragen, die möglicherweise nicht vollständig von einer einzelnen HTTP-Anfrage erfasst werden. Infolgedessen fehlen im abgerufenen HTML möglicherweise bestimmte Elemente oder es enthält Platzhalter anstelle von eigentlichen Kommentaren.
  3. Ratenbegrenzung und IP-Blockierung: Kontinuierliches Scraping mit herkömmlichen Methoden kann Ratenbegrenzungen oder IP-Sperrmechanismen auf den TikTok-Servern auslösen, was zu eingeschränktem Zugriff oder vorübergehenden Sperren führen kann.

Um diese Probleme zu überwinden und ein genaues Scraping von TikTok-Videokommentaren zu gewährleisten, können alternative Methoden wie die Verwendung von Headless-Browser or dynamische Rendering-APIs kann notwendig sein. Eine der APIs da draußen ist Crawlbase Crawling API.

Extrahieren von HTML mit Crawlbase Crawling API

Um die Einschränkungen des üblichen Ansatzes zu überwinden und HTML für TikTok-Videokommentare effizient abzurufen, können wir Folgendes nutzen: Crawlbase Crawling API. Diese API ermöglicht es uns, den gerenderten HTML-Inhalt von TikTok-Seiten abzurufen, einschließlich dynamisch geladene Inhalte.

So können Sie die Crawlbase nutzen Crawling API um HTML von TikTok-Videokommentaren abzurufen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
für Crawlbase importieren CrawlingAPI

# Initialisieren Sie das Crawlbase CrawlingAPI-Objekt
crawling_api = CrawlingAPI({"Zeichen": „CRAWLBASE_JS_TOKEN“})

Optionen = {
'ajax_wait': "wahr",
'Seite_warten': 10000,
"Benutzeragent": „Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, wie Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0“
}

# Funktion zum Abrufen von HTML mit Crawlbase Crawling API
def fetch_html_crawlbase(URL):
globale crawling_api, Optionen
versuchen:
Antwort = crawling_api.get(URL, Optionen)
if Antwort['Kopfzeilen']['pc_status'] == '200':
Rückkehr Antwort['Körper'].dekodieren('utf-8')
sonst:
drucken(f"HTML konnte nicht abgerufen werden. Crawlbase-Statuscode: {Antwort['Kopfzeilen']['pc_status']}")
Rückkehr Keine
ausgeschlossen Exception as e:
drucken(f"Ein Fehler ist aufgetreten: {str(e)}")
Rückkehr Keine

# Beispielverwendung
tiktok_url = „https://www.tiktok.com/@khaby.lame/video/7255327059302419738“
html_content = fetch_html_crawlbase(tiktok_url)
if HTML-Inhalt:
drucken(HTML-Inhalt)

Verwenden der Crawlbase Crawling API ermöglicht es uns, den HTML-Inhalt von TikTok-Seiten effizient abzurufen und sicherzustellen, dass der mit JavaScript gerenderte Inhalt genau erfasst wird. Dieser Ansatz ist besonders nützlich, um dynamische Inhalte wie TikTok-Videokommentare zu scrapen.

Crawling API HTML-Ausgabe

4. Extrahieren Sie TikTok-Kommentare im JSON-Format

Beim Scraping von TikTok-Kommentaren werden verschiedene Komponenten wie Informationen zum Videoautor, Kommentarliste, Kommentarinhalt und Kommentatordetails extrahiert. Lassen Sie uns jeden Schritt anhand professioneller und effizienter Codebeispiele genau analysieren.

Scraping von Informationen zum Videoautor

Beim Scrapen von Kommentaren von der Videoseite ist es wichtig, genaue Aufzeichnungen sowohl über das entsprechende Video als auch über den Uploader zu führen, um eine umfassende Analyse und Zuordnung zu ermöglichen. Um die Informationen zum Videoautor von einer TikTok-Videoseite zu scrapen, können wir Details wie den Benutzernamen, die Profil-URL und das Profilbild extrahieren.

HTML-Elemente für Videoautoren

Hier ist ein Codebeispiel, das zeigt, wie dies erreicht wird:

1
2
3
4
5
6
def Scrape_Video_Autor_Info(Suppe):
Autor_Info = {}
Autor_Info["Nutzername"] = Suppe.Wähle eine("span[data-e2e='browse-username']").text.strip()
Autor_Info[„Benutzerprofil-URL“] = Suppe.Wähle eine("a[data-e2e='Benutzer-Avatar durchsuchen']")["href"]
Autor_Info[„Benutzerbild-URL“] = Suppe.Wähle eine(„a[data-e2e='browse-user-avatar'] img“)["Quelle"]
Rückkehr author_info

Scraping-Kommentarliste

Um die Kommentarliste von einer TikTok-Videoseite zu scrapen, können wir die HTML-Elemente extrahieren, die die Kommentare enthalten.

Kommentarliste HTML-Elemente

Hier ist ein Codebeispiel, das zeigt, wie dies erreicht wird:

1
2
3
def Scrape_Kommentare_Auflistung(Suppe):
Kommentare_Liste = Suppe.Auswahl(„div[data-e2e='Suchkommentarcontainer'] > div[Klasse*='CommentListContainer'] > div[Klasse*='DivCommentItemContainer']“)
Rückkehr Kommentarliste

Scraping von Kommentarinhalten

Um den Inhalt jedes Kommentars herauszufiltern, können wir den Textinhalt der Kommentarelemente extrahieren.

HTML-Element für Kommentarinhalte

Hier ist ein Codebeispiel, das zeigt, wie dies erreicht wird:

1
2
3
4
def Kommentarinhalt scrapen(Kommentar):
Kommentarinhalt = {}
Kommentarinhalt['Kommentarinhalt'] = Kommentar.Wählen Sie einen aus("div[Klasse*='DivCommentContentContainer'] p[Daten-e2e='Kommentarebene-1'] > Spanne").text.strip()
Rückkehr Kommentarinhalt

Scraping von Kommentatordetails

Um Details über den Kommentator, wie etwa seinen Benutzernamen und seine Profil-URL, abzurufen, können wir relevante Informationen aus den Kommentarelementen extrahieren.

Kommentatordetails HTML-Elemente

Hier ist ein Codebeispiel, das zeigt, wie dies erreicht wird:

1
2
3
4
5
def scrape_commenter_details(Kommentar):
Kommentatordetails = {}
Kommentatordetails[„Benutzername des Kommentators“] = Kommentar.Wählen Sie einen aus(„div[Klasse*='DivCommentContentContainer'] span[data-e2e='Kommentar-Benutzername-1']“).text.strip()
Kommentatordetails[„Kommentatorprofil-URL“] = Kommentar.Wählen Sie einen aus(„div[Klasse*='DivCommentContentContainer'] > a[data-e2e='comment-avatar-1']“).erhalten("href")
Rückkehr Kommentatordetails

Code vervollständigen

Kombinieren wir nun diese Scraping-Funktionen zu einem vollständigen Codebeispiel, das Informationen zum Videoautor, eine Kommentarliste, Kommentarinhalte und Details zum Kommentator extrahiert:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
für Crawlbase importieren CrawlingAPI
für bs4 importieren BeautifulSuppe
importieren JSON

# Initialisieren Sie das Crawlbase CrawlingAPI-Objekt
crawling_api = CrawlingAPI({"Zeichen": „CRAWLBASE_JS_TOKEN“})

Optionen = {
'ajax_wait': "wahr",
'Seite_warten': 10000,
"Benutzeragent": „Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, wie Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0“
}

# Funktion zum Abrufen von HTML mit Crawlbase Crawling API
def fetch_html_crawlbase(URL):
globale crawling_api, Optionen
versuchen:
Antwort = crawling_api.get(URL, Optionen)
if Antwort['Kopfzeilen']['pc_status'] == '200':
Rückkehr Antwort['Körper'].dekodieren('utf-8')
sonst:
drucken(f"HTML konnte nicht abgerufen werden. Crawlbase-Statuscode: {Antwort['Kopfzeilen']['pc_status']}")
Rückkehr Keine
ausgeschlossen Exception as e:
drucken(f"Ein Fehler ist aufgetreten: {str(e)}")
Rückkehr Keine

def Scrape_Video_Autor_Info(Suppe):
Autor_Info = {}
Autor_Info["Nutzername"] = Suppe.Wähle eine("span[data-e2e='browse-username']").text.strip()
Autor_Info[„Benutzerprofil-URL“] = Suppe.Wähle eine("a[data-e2e='Benutzer-Avatar durchsuchen']")["href"]
Autor_Info[„Benutzerbild-URL“] = Suppe.Wähle eine(„a[data-e2e='browse-user-avatar'] img“)["Quelle"]
Rückkehr author_info

def Scrape_Kommentare_Auflistung(Suppe):
Kommentare_Liste = Suppe.Auswahl(„div[data-e2e='Suchkommentarcontainer'] > div[Klasse*='CommentListContainer'] > div[Klasse*='DivCommentItemContainer']“)
Rückkehr Kommentarliste

def Kommentarinhalt scrapen(Kommentar):
Kommentarinhalt = {}
Kommentarinhalt['Kommentarinhalt'] = Kommentar.Wählen Sie einen aus("div[Klasse*='DivCommentContentContainer'] p[Daten-e2e='Kommentarebene-1'] > Spanne").text.strip()
Rückkehr Kommentarinhalt

def scrape_commenter_details(Kommentar):
Kommentatordetails = {}
Kommentatordetails[„Benutzername des Kommentators“] = Kommentar.Wählen Sie einen aus(„div[Klasse*='DivCommentContentContainer'] span[data-e2e='Kommentar-Benutzername-1']“).text.strip()
Kommentatordetails[„Kommentatorprofil-URL“] = Kommentar.Wählen Sie einen aus(„div[Klasse*='DivCommentContentContainer'] > a[data-e2e='comment-avatar-1']“).erhalten("href")
Rückkehr Kommentatordetails

def Haupt-
scraped_data = {}

# HTML-Inhalt der TikTok-Videoseite abrufen
html_content = fetch_html_crawlbase(„https://www.tiktok.com/@khaby.lame/video/7255327059302419738“)

# HTML-Inhalte mit BeautifulSoup analysieren
Suppe = Schöne Suppe (HTML-Inhalt, "html.parser")

# Informationen zum Videoautor abrufen
Scraped_Daten['Autoreninformationen'] = scrape_video_author_info(Suppe)

# Kommentarliste scrapen
Kommentare_Auflistung = Kommentare_Auflistung_abkratzen(Suppe)

# Kommentare durchlaufen und Kommentarinhalte und Kommentatordetails extrahieren
Kommentare_Liste = []
für Kommentar in Kommentarliste:
Kommentare_Detail = {}
comments_detail.update(scrape_comment_content(Kommentar))
comments_detail.update(scrape_commenter_details(Kommentar))
Kommentare_Liste.Anhängen(Kommentare_Detail)

Scraped_Daten['Kommentare'] = Kommentarliste

# Drucken Sie die Scraped-Ergebnisse
drucken(json.dumps(scraped_data, Einzug=2, secure_ascii=falsch))

if __name__ == "__hauptsächlich__":
Main()

Beispielausgabe:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
{
"Informationen zum Autor": {
"Nutzername": "khaby.lame",
„Benutzerprofil-URL“: „https://www.tiktok.com/@khaby.lame“,
„Benutzerbild-URL“: „./Vertraue immer Robert Downey Jr. #oppenheimer #imax _ TikTok_files/6595ee956e2304779514b56c2f9cb666~c5_100x100.jpeg“
},
"Kommentare": [
{
„Kommentarinhalt“: "Ist das Iron Man?",
„Benutzername des Kommentators“: "dezzznuts",
„Kommentatorprofil-URL“: „https://www.tiktok.com/@dezzznuts19“
},
{
„Kommentarinhalt“: "Warte, er lebt?",
„Benutzername des Kommentators“: "Herr Blurryface",
„Kommentatorprofil-URL“: „https://www.tiktok.com/@mr.blurryfacee21“
},
{
„Kommentarinhalt“: „Tony?😳“,
„Benutzername des Kommentators“: "franciscorosalles",
„Kommentatorprofil-URL“: „https://www.tiktok.com/@franciscorosalles“
},
{
„Kommentarinhalt“: "ist das Tony",
„Benutzername des Kommentators“: "Tiefer Tod",
„Kommentatorprofil-URL“: „https://www.tiktok.com/@gt.clock.a“
},
{
„Kommentarinhalt“: "zweite",
„Benutzername des Kommentators“: „🇷🇸☠️🇷🇸“,
„Kommentatorprofil-URL“: „https://www.tiktok.com/@tiktok_zenox7“
},
{
„Kommentarinhalt“: "das Beste 💗💗💗",
„Benutzername des Kommentators“: „🍓 Lass uns gehen 🍓“,
„Kommentatorprofil-URL“: „https://www.tiktok.com/@leticiiamurilloo“
},
{
„Kommentarinhalt“: „Ironman 😱“,
„Benutzername des Kommentators“: "Fischkopter",
„Kommentatorprofil-URL“: „https://www.tiktok.com/@hugobosskingman.cool88“
},
..... mehr
]
}

5. Behandeln Sie die Paginierung beim Scraping von TikTok-Kommentaren

TikTok verwendet oft Infinite Scrolling, um mehr Kommentare dynamisch zu laden. Um die Paginierung zu handhaben, können wir die Crawlbase nutzen Crawling API scroll Parameter. Standardmäßig ist das Scrollintervall auf 10 Sekunden eingestellt, aber Sie können scroll_interval Parameter, um ihn zu ändern. Hier ist ein Beispiel für die Handhabung der Paginierung mit der Crawlbase Crawling API:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Funktion zum Abrufen von HTML-Inhalten mit Scroll-Paginierung
def fetch_html_with_pagination_crawlbase(URL):
globale crawling_api

# Richten Sie Crawlbase-API-Parameter für die Scroll-Paginierung ein
Optionen = {
'ajax_wait': "wahr",
'Benutzeragent': „Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, wie Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0“,
'scrollen': "wahr",
'Scrollintervall': 20000 # (20 Sekunden)
}

versuchen:
Antwort = crawling_api.get(URL, Optionen)
if Antwort['Kopfzeilen']['pc_status'] == '200':
Rückkehr Antwort['Körper'].dekodieren('utf-8')
sonst:
drucken(f"HTML konnte nicht abgerufen werden. Crawlbase-Statuscode: {Antwort['Kopfzeilen']['pc_status']}")
Rückkehr Keine
ausgeschlossen Exception as e:
drucken(f"Ein Fehler ist aufgetreten: {str(e)}")
Rückkehr Keine

6. Speichern von gelöschten TikTok-Kommentardaten

Nach dem erfolgreichen Scraping von TikTok-Kommentaren ist es wichtig, die extrahierten Daten für weitere Analysen und zukünftige Referenzzwecke zu speichern. Hier untersuchen wir zwei gängige Methoden zum Speichern von Scraping-Daten aus TikTok-Kommentaren: das Speichern in einer Excel-Datei und das Speichern in einer SQLite-Datenbank.

Als Excel-Datei speichern

Excel-Dateien bieten eine praktische Möglichkeit, Scraped-Daten zu organisieren und zu analysieren, was sie zu einer beliebten Wahl für die Speicherung strukturierter Informationen wie TikTok-Kommentare macht. Python bietet Bibliotheken wie pandas für die effiziente Handhabung von Dataframes und openpyxl zum Schreiben von Daten in Excel-Dateien.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
importieren Pandas as pd

# Funktion zum Speichern von Kommentardaten in Excel
def in Excel speichern(Daten, Dateiname):
author_info = Daten['Autoreninformationen']
Kommentare = Daten['Kommentare']

# Autoreninformationen reduzieren
flat_author_info = {'Autor_Benutzername': Autor_Info['Benutzername'],
'Autorenprofil-URL': Autor_Info[„Benutzerprofil-URL“],
'Autorbild-URL': Autor_Info[„Benutzerbild-URL“]}

# Kommentare abflachen
flat_comments = [{'Kommentarinhalt': Kommentar['Kommentarinhalt'],
„Kommentator_Benutzername“: Kommentar[„Benutzername des Kommentators“],
„Kommentatorprofil-URL“: Kommentar[„Kommentatorprofil-URL“]} für Kommentar in Kommentare]

# DataFrames erstellen
Autor_df = pd.DataFrame([flache_Autor_Info])
Kommentare_df = pd.DataFrame(flache_Kommentare)

# In Excel speichern
mit pd.ExcelWriter(Dateiname) as Schriftsteller:
author_df.to_excel(Autor, Blattname='Autoreninformationen', Index=falsch)
comments_df.to_excel(Autor, Tabellenname='Kommentare', Index=falsch)

drucken(„Daten erfolgreich in Excel-Datei gespeichert.“)

save_to_excel(data, filename):

Diese Funktion speichert Kommentardaten zusammen mit Autoreninformationen in einer Excel-Datei. Sie benötigt zwei Parameter: data, ein Wörterbuch, das sowohl Autoreninformationen als auch Kommentare enthält, und filename, den Namen der Excel-Datei, in der die Daten gespeichert werden.

Innerhalb der Funktion:

  • Autoreninformationen und Kommentare werden extrahiert aus dem data Wörterbuch.
  • Autoreninformationen werden in einem Wörterbuch zusammengefasst flat_author_info.
  • Kommentare werden in einer Liste von Wörterbüchern zusammengefasst flat_comments.
  • Es werden zwei DataFrames erstellt: einer für die Autoreninformationen (author_df) und eine für Kommentare (comments_df).
  • Die DataFrames werden in verschiedene Tabellenblätter der Excel-Datei geschrieben. Dazu wird pd.ExcelWriter.
  • Abschließend wird eine Erfolgsmeldung ausgedruckt, die angibt, dass die Daten in der Excel-Datei gespeichert wurden.

Speichern in SQLite-Datenbank

SQLite-Datenbanken bieten eine leichte und in sich geschlossene Lösung zum lokalen Speichern strukturierter Daten. Python bietet das Modul sqlite3 für die Interaktion mit SQLite-Datenbanken. Wir können eine Tabelle zum Speichern von TikTok-Kommentardaten erstellen und die Scraped-Daten in die Tabelle einfügen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
importieren sqlite3

# Funktion zum Erstellen einer Tabelle, falls diese nicht vorhanden ist
def Tabelle erstellen, falls nicht vorhanden(db_dateiname, tabellenname):
versuchen:
conn = sqlite3.connect(db_dateiname)
# SQLite-Tabelle erstellen oder anhängen
Tabelle_erstellen_sql = f'''Tabelle erstellen, wenn nicht vorhanden {Tabellenname} (
Autor_Benutzername TEXT,
Autor_Profil_URL TEXT,
Autor_Bild_URL TEXT,
Kommentarinhalt TEXT,
Kommentator_Benutzername TEXT,
Kommentator_Profil_URL TEXT
)'''
conn.execute(Tabelle erstellen_SQL)
conn.commit()
ausgeschlossen sqlite3.Fehler as e:
drucken(f"Fehler beim Erstellen der SQLite-Tabelle: {e}")
endlich:
conn.close()

# Funktion zum Speichern von Kommentardaten in einer SQLite-Datenbank
def in SQLite speichern(Daten, Datenbankdateiname, Tabellenname):
author_info = Daten['Autoreninformationen']
Kommentare = Daten['Kommentare']
versuchen:
conn = sqlite3.connect(db_dateiname)

# Autoreninformationen reduzieren
flat_author_info = (Autoreninfo['Benutzername'],
Autor_Info[„Benutzerprofil-URL“],
Autor_Info[„Benutzerbild-URL“])

# Autorendaten in SQLite einfügen
insert_author_sql = f'''INSERT INTO {Tabellenname} (
Autor_Benutzername,
Autor_Profil_URL,
Autor_Bild_URL,
Kommentarinhalt,
Kommentator_Benutzername,
Kommentator_Profil_URL
) WERTE (?, ?, ?, ?, ?, ?)'''

für Kommentar in Bemerkungen:
flat_comment = (flat_author_info[0], # Autor_Benutzername
flache_Autoreninfo[1], # Autor_Profil_URL
flache_Autoreninfo[2], # Autor_Bild_URL
Kommentar['Kommentarinhalt'],
Kommentar[„Benutzername des Kommentators“],
Kommentar[„Kommentatorprofil-URL“])

conn.execute(Autor_SQL einfügen, Flat_Comment)

conn.commit()
drucken(„Daten erfolgreich in SQLite-Datenbank gespeichert.“)
ausgeschlossen sqlite3.Fehler as e:
drucken(f"Fehler beim Speichern der Daten in der SQLite-Datenbank: {e}")
endlich:
conn.close()

create_table_if_not_exists(db_filename, table_name):

Diese Funktion stellt sicher, dass in der SQLite-Datenbank eine Tabelle mit dem angegebenen Namen vorhanden ist. Sie benötigt zwei Parameter: db_filename, der Dateiname der SQLite-Datenbank und table_name, der Name der Tabelle, die erstellt oder auf Existenz überprüft werden soll.

Innerhalb der Funktion:

  • Es wird eine Verbindung zur SQLite-Datenbank hergestellt.
  • Eine SQL-Abfrage wird ausgeführt, um die Tabelle zu erstellen, falls sie noch nicht vorhanden ist. Die Tabelle besteht aus Feldern für Autoreninformationen (Benutzername, Profil-URL und Bild-URL) und Kommentarinformationen (Inhalt, Benutzername des Kommentators und Profil-URL des Kommentators).
  • Wenn beim Erstellen der Tabelle ein Fehler auftritt, wird eine Fehlermeldung ausgegeben.
  • Abschließend wird die Verbindung zur Datenbank geschlossen.

save_to_sqlite(data, db_filename, table_name):

Diese Funktion speichert Kommentardaten zusammen mit Autoreninformationen in einer SQLite-Datenbank. Sie benötigt drei Parameter: data, ein Wörterbuch mit Autoreninformationen und Kommentaren, db_filename, der Dateiname der SQLite-Datenbank und table_name, der Name der Tabelle, in der die Daten gespeichert werden.

Innerhalb der Funktion:

  • Autoreninformationen und Kommentare werden extrahiert aus dem data Wörterbuch.
  • Die Autoreninformationen werden in einem Tupel zusammengefasst. flat_author_info.
  • Für jeden Kommentar werden die Autoreninformationen und die Kommentardaten zu einem Tupel zusammengefasst flat_comment.
  • Um die Daten in die SQLite-Tabelle einzufügen, wird eine SQL-Abfrage ausgeführt.
  • Tritt beim Einfügen der Daten ein Fehler auf, wird eine Fehlermeldung ausgedruckt.
  • Abschließend wird die Verbindung zur Datenbank geschlossen.

7. Vollständiger Code mit Paginierung und Speicherung

Erweitern wir nun unser vollständiges Codebeispiel aus Abschnitt 4 um die Seitennummerierung und das Speichern von Kommentardaten in Excel- und SQLite-Datenbanken:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
für Crawlbase importieren CrawlingAPI
für bs4 importieren BeautifulSuppe
importieren Pandas as pd
importieren sqlite3

# Initialisieren Sie das Crawlbase CrawlingAPI-Objekt
crawling_api = CrawlingAPI({"Zeichen": „CRAWLBASE_JS_TOKEN“})

def fetch_html_with_pagination_crawlbase(URL):
# ... (unverändert)

def Scrape_Video_Autor_Info(Suppe):
# ... (unverändert)

def Scrape_Kommentare_Auflistung(Suppe):
# ... (unverändert)

def Kommentarinhalt scrapen(Kommentar):
# ... (unverändert)

def scrape_commenter_details(Kommentar):
# ... (unverändert)

def in Excel speichern(Daten, Dateiname):
# ... (unverändert)

def Tabelle erstellen, falls nicht vorhanden(db_dateiname, tabellenname):
# ... (unverändert)

def in SQLite speichern(Daten, Datenbankdateiname, Tabellenname):
# ... (unverändert)

def Haupt-
scraped_data = {}

# HTML-Inhalt der TikTok-Videoseite abrufen
html_content = fetch_html_with_pagination_crawlbase(„https://www.tiktok.com/@khaby.lame/video/7255327059302419738“)

# HTML-Inhalte mit BeautifulSoup analysieren
Suppe = Schöne Suppe (HTML-Inhalt, "html.parser")

# Informationen zum Videoautor abrufen
Scraped_Daten['Autoreninformationen'] = scrape_video_author_info(Suppe)

# Kommentarliste scrapen
Kommentare_Auflistung = Kommentare_Auflistung_abkratzen(Suppe)

# Kommentare durchlaufen und Kommentarinhalte und Kommentatordetails extrahieren
Kommentare_Liste = []
für Kommentar in Kommentarliste:
Kommentare_Detail = {}
comments_detail.update(scrape_comment_content(Kommentar))
comments_detail.update(scrape_commenter_details(Kommentar))
Kommentare_Liste.Anhängen(Kommentare_Detail)

Scraped_Daten['Kommentare'] = Kommentarliste

# Kommentardaten in Excel- und SQLite-Datenbank speichern
in Excel speichern (gescrapte Daten, "tiktok_comments.xlsx")
Tabelle erstellen, falls nicht vorhanden("tiktok_comments.db", "Kommentare")
save_to_sqlite(gescrapte_Daten, "tiktok_comments.db", "Kommentare")

if __name__ == "__hauptsächlich__":
Main()

Dieses erweiterte Codebeispiel zeigt, wie die Paginierung beim Scraping von TikTok-Kommentaren gehandhabt und die gescrapten Kommentardaten zur weiteren Analyse sowohl in Excel- als auch in SQLite-Datenbanken gespeichert wird.

tiktok_comments.xlsx Datei & comments Tabellenübersicht:

Snapshot der Ausgabedateien

Herzlichen Glückwunsch zur erfolgreichen Einrichtung Ihres TikTok-Kommentar-Scrapers mit der Crawlbase Crawling API und Python! Ich hoffe, dieser Leitfaden war beim Scraping von TikTok-Kommentaren hilfreich.

Entdecken Sie unsere kuratierte Liste von TikTok-Schaber um Ihre Scraping-Fähigkeiten zu verbessern:

📜 Beste TikTok-Scraper
📜 So scrapen Sie TikTok-Suchergebnisse
📜 So scrapen Sie Facebook
📜 Wie man Linkedin scrapt
📜 So scrapen Sie Twitter
📜 Wie man Instagram scrapt
📜 Wie man Youtube scrapt

Für weitere Anpassungsoptionen und erweiterte Funktionenbeziehen sich auf die Crawlbase Crawling API Dokumentation. Wenn Sie Fragen oder Feedback haben, unsere Support-Team steht Ihnen jederzeit zur Verfügung, um Sie bei Ihrem Web Scraping-Vorgang zu unterstützen.

8. Häufig gestellte Fragen (FAQs)

F. Warum TikTok-Kommentare scrapen?

Durch das Scraping von TikTok-Kommentaren können Benutzer wertvolle Erkenntnisse, Trends und Stimmungen aus benutzergenerierten Inhalten extrahieren. Durch die Analyse von Kommentaren können Unternehmen die Vorlieben, Meinungen und das Feedback ihres Publikums besser verstehen. Forscher können Kommentardaten auch für Sozialstudien, Stimmungsanalysen und Trendanalysen verwenden.

Obwohl das Scraping von TikTok-Kommentaren technisch gesehen gegen die Nutzungsbedingungen von TikTok verstößt, hängt die Rechtmäßigkeit des Web Scraping von verschiedenen Faktoren ab, darunter dem Zweck des Scrapings, der Einhaltung von Datenschutzgesetzen und der Einhaltung der Nutzungsbedingungen der Website. Es ist wichtig, die Nutzungsbedingungen und Datenschutzbestimmungen von TikTok zu überprüfen und einzuhalten, bevor Sie Kommentare von der Plattform scrapen.

F. Was können Sie aus dem Scraping von TikTok-Kommentaren lernen?

Das Scraping von TikTok-Kommentaren kann wertvolle Einblicke in das Engagement der Benutzer, Stimmungsanalysen, Inhaltstrends und die Demografie des Publikums liefern. Durch die Analyse der Kommentardaten können Benutzer beliebte Themen identifizieren, die Reaktionen des Publikums auf bestimmte Inhalte einschätzen und die Stimmung der Benutzer gegenüber Marken, Produkten oder Dienstleistungen verstehen.

F. Wie gehe ich beim Scraping von TikTok-Kommentaren mit dynamischem Inhalt um?

Der Umgang mit dynamischen Inhalten beim Scraping von TikTok-Kommentaren erfordert Techniken wie die Verwendung von Headless-Browsern oder Automatisierungstools, um die Seite vollständig zu rendern, bevor die Kommentare extrahiert werden. Alternativ können Benutzer Web Scraping-APIs wie Crawlbase verwenden. Crawling API, die JavaScript-Rendering-Funktionen bieten, um dynamische Inhalte präzise zu scrapen. Diese Methoden stellen sicher, dass alle Kommentare, auch dynamisch geladene, während des Scraping-Prozesses effektiv erfasst werden.