前言
Python抓取b站评论最新代码
编码不易,请支持原创!付费后,可获取完整python爬虫源码及结果文件。使用中有任何问题都可以免费咨询。
大家好,我是野火,专注互联网创业项目,同时也是一名程序猿。废话不多说,我们来演示用python抓取b站视频评论的功能。
一,首先看一下爬取的结果
篇幅太长,只展示部分结果
这段代码我已经完善了,只要设置好自己的cookie,以及想要抓取评论的视频地址,运行后就可以生成结果了
可以自动抓取下一页的评论
抓取的字段包含:昵称,性别,ip,评论,以及其他字段我在代码中都有注释,可根据自己的实际情况来使用。
二,爬虫代码
会用到的库
#B站评论分页爬取,作者野火,本代码仅供学习交流,禁止违法用途
import requests
import hashlib
import time
import json
import re
from fake_useragent import UserAgent
import csv
from urllib.parse import quote
定义请求头: cookie必须设置,否则无法抓到数据
headers={
'User-Agent': UserAgent().random,
'Cookie':设置自己的cookie,
'Referer':'https://www.bilibili.com/'
}
获取cookie的操作如下:
-
-
登录b站,随便点击一个视频
-
刷新评论,找到main这个url
-
点击这个url,复制cookie的值,然后粘贴到代码中
点击payload,查看所提交的参数
参数解析
'oid':#视频唯一标识
'type': '1',#不用改
# 'seek_rpid':'',#不用改
'mode': '3',#不用改
'pagination_str': '{"offset":%s}'%next_page,#翻页参数
'plat':'1',#不用改
'web_location': '1315875',#不用改
'w_rid': w_rid,#加密参数,后面会讲到如何获取
'wts':date,#时间戳,十位的
获取十位时间戳
date = int(time.time())
获取视频唯一标识
#获取oid
def get_oid(author_url):
rsp = requests.get(author_url,headers=headers)
oid = re.findall(r'"aid":(\d+),',rsp.text)[0]
return oid
定义保存文件的信息
f = open('data.csv', mode='w', encoding='utf-8-sig', newline='') # 创建文件对象,保存数据
csv_writer = csv.DictWriter(f, fieldnames=[
'昵称',
'性别',
'IP',
'评论',
'点赞',
])
csv_writer.writeheader()
注意 ,这里编码格式一定要设置'utf-8-sig',否则会出现乱码
三,完整代码
编码不易,请支持原创!
代码本人为2024年5月17日本人测试后的最新代码,保证可以正常运行!
代码地址:2024年最新python抓取b站评论代码
我是野火,专注互联网创业以及python技术,b站/公众号搜:野火网创项目