基于Python的B站(哔哩哔哩)视频评论采集,可破解反爬手段,想爬几条爬几条

简介: 本文介绍了一个基于Python的B站(哔哩哔哩)视频评论采集工具,能够通过输入视频的av号、BV号或链接,并使用特定的cookie和请求头信息来绕过反爬手段,实现大规模的评论数据采集,并支持将数据解析并保存为CSV格式。

它通过输入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文件。
执行主函数并输出结束提示。

主要代码如下:

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

最后采集,可以采集数十万条评论,想要完整代码可以联系我,白嫖勿扰!

相关文章
|
8月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
8月前
|
数据采集 自然语言处理 数据可视化
Python爬取B站视频评论区情感分析:从数据采集到价值挖掘
B站作为年轻人聚集地,评论蕴含丰富情感与趋势。本文详解如何用Python爬取评论,结合SnowNLP与jieba进行中文情感分析,并通过可视化挖掘用户情绪、消费意愿与内容反馈,助力精准运营与决策。
1092 0
|
8月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
9月前
|
自然语言处理 算法 数据安全/隐私保护
item_review - Lazada 商品评论列表接口深度分析及 Python 实现
Lazada商品评论接口(item_review)可获取东南亚多国用户评分、评论内容、购买属性等数据,助力卖家分析消费者偏好、优化产品与营销策略。
|
9月前
|
JSON API 数据安全/隐私保护
Python采集淘宝评论API接口及JSON数据返回全流程指南
Python采集淘宝评论API接口及JSON数据返回全流程指南
JSON 监控 API
360 0
|
9月前
|
搜索推荐 算法 关系型数据库
基于python评论分析的商品推荐系统设计
本文介绍了多种开发技术,包括Python集成开发环境PyCharm、自然语言处理工具SnowNLP、关系型数据库MySQL、Python语言特性、Django Web框架以及协同过滤算法。内容涵盖各技术的基本功能、特点及其在实际开发中的应用,适用于初学者和开发者了解相关工具与框架的使用与优势。
|
10月前
|
API Python
Python采集淘宝店铺所有商品API接口指南
淘宝没有公开的官方API供采集店铺商品数据,但可以通过以下几种方法获取商品信息。需要注意的是,淘宝有严格的反爬机制,直接采集可能违反其服务条款。