最新B站评论爬虫(附代码,2024.10.17可用)

debug后分享出来,供使用。

欢迎评论交流

import requests
import time
import csv

headers = {
    'User-Agent': ' '   #改为自己的User-Agent 
}

def fetch_comments(video_id):
    url = f'https://api.bilibili.com/x/v2/reply/main?type=1&oid={video_id}&mode=3'
    try:
        response = requests.get(url, headers=headers, timeout=10)
        if response.status_code == 200:
            data = response.json()
            comments = []
            if data and 'data' in data and 'replies' in data['data']:
                for comment in data['data']['replies']:
                    comment_info = {
                        '用户昵称': comment['member']['uname'],
                        '评论内容': comment['content']['message'],
                        '评论层级': '一级评论',
                        '性别': comment['member']['sex'],
                        '用户当前等级': comment['member']['level_info']['current_level'],
                        '点赞数量': comment['like'],
                        '回复时间': time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(comment['ctime']))
                    }
                    comments.append(comment_info)
                    print(comment_info)
            return comments
        else:
            print(f'请求失败:{response.status_code}')
    except requests.RequestException as e:
        print(f"请求出错: {e}")
    return []


def save_comments_to_csv(comments, video_id):   
    with open(f'result/{video_id}.csv', mode='w', encoding='utf-8', newline='') as file:
        writer = csv.DictWriter(file,
                                fieldnames=['用户昵称', '性别', '评论内容', '评论层级', '用户当前等级',
                                            '点赞数量', '回复时间'])
        writer.writeheader()
        for comment in comments:
            writer.writerow(comment)


video_name = ' '  # 视频名字
video_id = ' '  # 视频bv号
print(f'视频名字: {video_name}, video_id: {video_id}')
comments = fetch_comments(video_id)
save_comments_to_csv(comments, video_name)  


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值