它通过输入Bilibili视频的av号、BV号或链接,然后使用指定的cookie和请求头信息发送HTTP请求来获取视频的评论数据。然后,它将评论数据解析为CSV格式,并保存到指定的文件中。
具体实现过程如下:
导入所需的库:requests用于发送HTTP请求,os用于操作文件路径,time用于处理时间,json用于解析JSON数据,pandas用于数据处理。
设置相关参数:设置cookie(登录Bilibili账号后获取)和数据保存路径等参数。
定义函数visit(bv)用于访问Bilibili视频网页,判断视频是否存在。
定义函数Bta(bv)用于将BV号转化为av号。
定义函数send_f(bv, nexts=0, mode=3)用于发送父评论的请求,获取父评论的JSON数据。
定义函数send_r(bv, rpid, pn=1)用于发送子评论的请求,获取子评论的JSON数据。
定义函数parse_comment_r(bv, rpid)用于解析子评论的JSON数据,并返回CSV格式的子评论数据。
定义函数parse_comment_f(bv)用于解析父评论的JSON数据,并调用parse_comment_r()函数解析子评论。
定义主函数main(),从CSV文件中读取Bilibili视频信息,循环遍历视频列表并调用parse_comment_f()函数来获取评论数据,并将解析后的评论数据保存为CSV文件。
执行主函数并输出结束提示。
主要代码如下:文章来源:https://www.toymoban.com/news/detail-802769.html
def send_f(bv, nexts=0, mode=3): ''' 返回父评论json \n bv: 全bv号 \n nests: json页码 \n mode: 1楼层,2时间,3热门 ''' r_url = 'https://api.bilibili.com/x/v2/reply/main' url = 'https://www.bilibili.com/video/' + bv av = Bta(bv) headers = { 'accept': '*/*', 'accept-encoding': 'gzip, deflate, br', 'accept-language': 'zh-CN,zh;q=0.9', 'cache-control': 'no-cache', 'cookie': cookie, 'pragma': 'no-cache', 'referer': url, 'sec-ch-ua': '" Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"', 'sec-ch-ua-mobile': '?0', 'sec-fetch-dest': 'script', 'sec-fetch-mode': 'no-cors', 'sec-fetch-site': 'same-site', 'user-agent': '你的user-agent', } data = { # 'callback': 'jQuery172030289933285891424_' + str(time.time()*1000)[:13], 'jsonp': 'jsonp', 'next': nexts, # 页码 'type': '1', 'oid': av, # av号 'mode': mode, # 1:楼层大前小后, 2:时间晚前早后, 3:热门评论 'plat': '1', '_': str(time.time()*1000)[:13], # 时间戳 } response = requests.get(r_url, headers = headers, params = data) response.encoding = 'utf-8' # 将得到的json文本转化为可读json if 'code' in response.text: c_json = json.loads(response.text) else: c_json = {'code': -1} if c_json['code'] != 0: print('json error!') print(response.status_code) print(response.text) return 0 # 读取错误 return c_json
最后采集,可以采集数十万条评论,想要完整代码可以联系我,白嫖勿扰!文章来源地址https://www.toymoban.com/news/detail-802769.html
到了这里,关于基于Python的B站(哔哩哔哩)视频评论采集,可破解反爬手段,想爬几条爬几条的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!