Schauen Sie sich das bitte zuerst an. [Plan] Bad Face Championship https://www.youtube.com/watch?v=IEkLSfs1F68
Holen Sie sich Kommentare
Verwenden Sie die Youtube-Daten-API, um Kommentare abzurufen und Kommentare zu beantworten.
Andere Informationen als Kommentare (ID der Person, die kommentiert hat usw.) werden nicht erfasst.
Beurteilungsbedingungen für Schadensmeldung
Name + Nummer (1 bis 3) sind enthalten, z. B. "Nagata ①" und "Matsuo 2".
Es ist passiv wie "...".
Da ich jedoch Sichtungsinformationen einschließen möchte, füge ich auch "-ita" hinzu.
get_youtube_comments.py
import json
import re
import pandas as pd
import requests
API_KEY = 'Geben Sie Ihren API-Schlüssel ein'
VIDEO_ID = 'IEkLSfs1F68'
def get_comment_info(api_key, video_id, page_token):
comment_url = 'https://www.googleapis.com/youtube/v3/commentThreads'
param = {
'key': api_key,
'videoId': video_id,
'part': 'replies, snippet',
'maxResults': '100',
}
if page_token:
param['pageToken'] = page_token
response = requests.get(comment_url, params=param)
return response.json()
def get_video_comments(api_key, video_id):
comments = []
page_token = ''
while page_token != None:
resource = get_comment_info(api_key, video_id, page_token)
for comment_thread in resource['items']:
#Erhalten Sie Kommentare
comment = comment_thread['snippet']['topLevelComment']['snippet']['textDisplay']
comments.append(comment)
if ('replies' in comment_thread) and ('comments' in comment_thread['replies']):
for replies in comment_thread['replies']['comments']:
#Erhalten Sie Kommentare
reply_comment = replies['snippet']['textDisplay']
comments.append(reply_comment)
if 'nextPageToken' in resource:
page_token = resource['nextPageToken']
else:
page_token = None
return comments
#Holen Sie sich eine Liste der Kommentare
comments = get_video_comments(API_KEY, VIDEO_ID)
#Zeilenumbruch-Tag entfernen
comments = list(map(lambda x: re.sub('<br />', '', x), comments))
target_list = []
report_comment_list = []
for comment in comments:
target = re.findall('[Nagata|Matsuo]+[1-31-3①②③]', comment)
#Wenn mehrere vorhanden sind, wird nur der eindeutige Wert extrahiert
target = list(set(target))
passive_words = re.findall('(War|War|War dort|War dort)', comment)
if len(target) > 0 and len(passive_words) > 0:
#Wenn ein Kommentar mehrere Ziele enthält, fügen Sie jedes Ziel zur Liste hinzu.
for t in target:
target_list.append(t)
report_comment_list.append(comment)
df = pd.DataFrame({'target': target_list, 'comment': report_comment_list})
#Zeigen Sie mehrere Elemente nach dem Zufallsprinzip an
df.sample(5, random_state=42)
print(df.shape)
->(178, 2)
Es scheint, dass insgesamt 178 Schadensberichte eingereicht wurden.
target comment
19 Matsuo ② Ich hatte große Angst, weil ich ihm so unerbittlich nachjagte. Ich war besorgt, weil ich hinten ein kleines Kind hatte...
45 Nagata ① Parker wurde von Nagata ① gestohlen.
24 Nagata ③ Nagata ③ Darüber hinaus gibt es viele Informationen, die ich mit Nachbarn gesprochen habe, dass "Gott eine Hand mit mir genommen hat" von früher....
30 Matsuo ② Matsuo ② hat 96 Krabben gestohlen.
67 Matsuo (Matsuo), Nagata und Matsuo haben mich betrogen.
Ich bin neugierig auf Nr. 24.
Chocopla ist gut ~
Ich durfte mich beziehen. Vielen Dank. [Python] Alle Kommentare mit Youtube Data Api abrufen Erhalten Sie Kommentare und Abonnenten mit der YouTube-Daten-API Chocolate Planet Channel