Python获取搜索视频及评论的流程
为了帮助小白实现“python获取搜索视频及评论”的功能,下面我将提供一段Python代码,详细介绍整个流程并给出代码的解释和注释。
流程图
flowchart TD
A[搜索关键字] --> B[调用YouTube API]
B --> C[获取搜索结果]
C --> D[获取视频ID]
D --> E[获取视频评论]
E --> F[保存视频评论]
代码实现
首先,我们需要安装google-api-python-client
库来调用YouTube API,并安装pandas
库来处理数据。
!pip install google-api-python-client pandas
接下来是代码的实现:
# 导入所需库
import os
import pandas as pd
from googleapiclient.discovery import build
# 设置YouTube API密钥
API_KEY = "YOUR_API_KEY"
# 创建YouTube对象
youtube = build('youtube', 'v3', developerKey=API_KEY)
# 搜索关键字
search_keyword = "python tutorial"
# 调用YouTube API进行搜索
search_response = youtube.search().list(
q=search_keyword,
part='id',
maxResults=10 # 可根据实际需求调整搜索结果数量
).execute()
# 获取搜索结果
search_results = search_response.get('items', [])
# 获取视频ID
video_ids = []
for search_result in search_results:
if search_result['id']['kind'] == 'youtube#video':
video_ids.append(search_result['id']['videoId'])
# 获取视频评论
video_comments = []
for video_id in video_ids:
comments_response = youtube.commentThreads().list(
part="snippet",
videoId=video_id,
maxResults=10 # 可根据实际需求调整评论数量
).execute()
for comment in comments_response['items']:
video_comments.append(comment['snippet']['topLevelComment']['snippet']['textDisplay'])
# 保存视频评论到CSV文件
df = pd.DataFrame({'comments': video_comments})
df.to_csv('video_comments.csv', index=False)
代码解释和注释:
-
导入所需库:
import os import pandas as pd from googleapiclient.discovery import build
-
设置YouTube API密钥,请替换
YOUR_API_KEY
为你自己的API密钥:API_KEY = "YOUR_API_KEY"
-
创建YouTube对象:
youtube = build('youtube', 'v3', developerKey=API_KEY)
-
搜索关键字,请将
search_keyword
替换为你想要搜索的关键字:search_keyword = "python tutorial"
-
调用YouTube API进行搜索:
search_response = youtube.search().list( q=search_keyword, part='id', maxResults=10 # 可根据实际需求调整搜索结果数量 ).execute()
-
获取搜索结果:
search_results = search_response.get('items', [])
-
获取视频ID:
video_ids = [] for search_result in search_results: if search_result['id']['kind'] == 'youtube#video': video_ids.append(search_result['id']['videoId'])
-
获取视频评论:
video_comments = [] for video_id in video_ids: comments_response = youtube.commentThreads().list( part="snippet", videoId=video_id, maxResults=10 # 可根据实际需求调整评论数量 ).execute() for comment in comments_response['items']: video_comments.append(comment['snippet']['topLevelComment']['snippet']['textDisplay'])
-
保存视频评论到CSV文件:
df = pd.DataFrame({'comments': video_comments}) df.to_csv('video_comments.csv', index=False)
以上代码实现了从YouTube搜索指定关键字的视频,并获取每个视频的评论,最后将评论保存到CSV文件中。
希望这段代码对你有所帮助!