欢迎光临散文网 会员登陆 & 注册

【python爬虫】爬取bilibili动态下面的评论

2020-04-22 13:35 作者:来个罗芭姐姐双排  | 我要投稿

话不多说先放源代码(由于专栏没有makdown功能只能直接放啦)

作用我都标注在旁边了,蓝色字体的部分意味着你可以自行修改


pn前面的分号不是我加的,是b站自己加的,用的时候记得自己删掉
pn前面的分号不是我加的,是b站自己加的,用的时候记得自己删掉

import re 
import urllib.request
import time

time.sleep(2)
comment_list = []  #创建空列表
for i in range(115): #动态下面的评论总共有115页
   url = 'https://api.bilibili.com/x/v2/reply?jsonp=jsonp&pn='+str(i)+'&type=17&oid=378081993930152813&sort=2' #动态评论的接口(请大家不要恶意攻击造成负荷)
   headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36' } #代理用户进行浏览器伪装
   html = urllib.request.Request(url = url,headers = headers)
   data = urllib.request.urlopen(html).read().decode('utf-8')
   comment = re.findall(r'"content":{"message":"(.*?)"',data,re.S) #用正则表达式扒所需要的评论内容获取,只爬了评论内容
   print(len(comment)) #输出每页有多少个回复
   comment_list.extend(comment) #将评论内容一个个添加进空列表
print('评论已经爬取完成')
comment_txt = open('C:/Users/28051/Desktop/comment.txt','w',encoding='utf-8') #创建txt文本

for r in comment_list:

   comment_txt.write(r) #写入txt文本
comment_txt.close()

得到文本内容后你就可以自己进行文本分析啦,比如做词频分析啊,情感分析等等

有什么问题评论或者私信我,我会在第一时间内回复哦


API解析

https://api.bilibili.com/x/v2/reply?jsonp=jsonp&pn=[]&type=17&oid=[]&sort=[]

第一个位置填数字,表示多少页

第二个位置填动态的oid

第三个位置,当填入0时,表示按照时间排序,当填入2时,表示按照热度排序


ps:纯技术分享,有引战的我可是会删评哦

【python爬虫】爬取bilibili动态下面的评论的评论 (共 条)

分享到微博请遵守国家法律