0
点赞
收藏
分享

微信扫一扫

python爬虫40行代码一键获取b站视频的全部热门评论

在b站看到某些视频的网友评论有些很有意思,

今天用python写40行代码给它一键保存

最新评论的文件,不能爬取,会显示开通会员之类的

所以只爬取热门评论

公众号回复 b站视频评论 获取源代码

欢迎分享

看下效果:

python爬虫40行代码一键获取b站视频的全部热门评论_字符串


首先打开一个视频

python爬虫40行代码一键获取b站视频的全部热门评论_json_02

python爬虫40行代码一键获取b站视频的全部热门评论_json_03

直接全局搜索评论的内容,查找出来之后,点击这个文件,文件里面存放着评论信息,但是一个文件里只放着20条评论信息

python爬虫40行代码一键获取b站视频的全部热门评论_字符串_04

我们看一下查询字符串信息

有个next参数,这个就是要查询的评论文件参数,通过改变链接中的next参数,即可获取到不同的文件,从而获取所有的评论

而这个oid就是视频id

python爬虫40行代码一键获取b站视频的全部热门评论_json_05


看下url地址和访问方法

python爬虫40行代码一键获取b站视频的全部热门评论_公众号_06

访问,数据是json格式,所以用.json()获取数据

然后提取评论内容,保存

pl_url = f'https://api.bilibili.com/x/v2/reply/main?csrf=c1a104b50a5df4f737067d21a42ad99f&mode=3&next={p}&oid={oid}&plat=1&seek_rpid=&type=1'


        response = requests.get(url=pl_url,headers=headers).json()


        for li in response['data']['replies']:
            content = li['content']['message']
            f.write(content)
            f.write('\n')
            print(content)

这只是对于一个文件,20条评论保存的

我们需要访问视频页,提取评论数量,和oid来改变链接参数,获取不同的文件

python爬虫40行代码一键获取b站视频的全部热门评论_字符串_07


这是视频页源代码中的一部分,其中aid和reply的值就是视频id和评论数量

python爬虫40行代码一键获取b站视频的全部热门评论_公众号_08

我们访问视频页链接,把这两个值提取出来

直接用re正则匹配出来

url = url
    headers = {


        "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.35"
    }


    # 获取视频页源码,提取 aid 和 评论数量
    res = requests.get(url=url,headers=headers).text
    # print(res)


    reoid = re.search('"aid":(?P<id>.*?),',res)
    oid = reoid.group('id')
    # print(oid)


    reply = re.search(',"reply":(?P<reply>.*?),',res)
    pl = int(reply.group('reply'))
    # print(pl)


    # 用评论数除以20 就得出要改变参数的最大值了,就是获取多少个文件
    page = int(pl/20)+1
    # print(page)


提取出来之后,再加上获取评论的代码

执行

python爬虫40行代码一键获取b站视频的全部热门评论_json_09

python爬虫40行代码一键获取b站视频的全部热门评论_json_10

感谢观看

欢迎分享

公众号回复 b站视频评论 获取源代码


举报

相关推荐

0 条评论