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)

代码解释和注释:

  1. 导入所需库:

    import os
    import pandas as pd
    from googleapiclient.discovery import build
    
  2. 设置YouTube API密钥,请替换YOUR_API_KEY为你自己的API密钥:

    API_KEY = "YOUR_API_KEY"
    
  3. 创建YouTube对象:

    youtube = build('youtube', 'v3', developerKey=API_KEY)
    
  4. 搜索关键字,请将search_keyword替换为你想要搜索的关键字:

    search_keyword = "python tutorial"
    
  5. 调用YouTube API进行搜索:

    search_response = youtube.search().list(
        q=search_keyword,
        part='id',
        maxResults=10  # 可根据实际需求调整搜索结果数量
    ).execute()
    
  6. 获取搜索结果:

    search_results = search_response.get('items', [])
    
  7. 获取视频ID:

    video_ids = []
    for search_result in search_results:
        if search_result['id']['kind'] == 'youtube#video':
            video_ids.append(search_result['id']['videoId'])
    
  8. 获取视频评论:

    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'])
    
  9. 保存视频评论到CSV文件:

    df = pd.DataFrame({'comments': video_comments})
    df.to_csv('video_comments.csv', index=False)
    

以上代码实现了从YouTube搜索指定关键字的视频,并获取每个视频的评论,最后将评论保存到CSV文件中。

希望这段代码对你有所帮助!