哔哩哔哩排行榜弹幕发送排名,发的最多的竟然是?
https://attach.52pojie.cn//forum/202003/18/193248gccmygggcz8c3hmb.png?limport requestsimport pprint
import json
from collections import Counter
from bs4 import BeautifulSoup
def get_video(av):
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36"}
cid = requests.get('https://www.jijidown.com/api/v1/video/get_download_info?id=%s' % av,headers = headers)
try:
cid = json.loads(cid.text)['res']['cid']#获取cid,通过bilibililjj
except IndexError:
print('pass')
pass #错误直接跳过
cap = requests.get('https://api.bilibili.com/x/v1/dm/list.so?oid=%s' % cid)
cap.encoding = 'UTF-8' #获取弹幕,抓包得到数据
cap = BeautifulSoup(cap.text,features="html.parser")
cap = cap.find_all('d')
cap_video = []
for a in cap:#所有弹幕整合在同一列表里
cap_video.append(a.text)
return(Counter(cap_video))#转换为Counter格式返回
def get_av(): #获取排行榜所有av号
av = []
data = requests.get('https://www.bilibili.com/ranking')
data.encoding = 'UTF-8'
data = BeautifulSoup(data.text,features="html.parser")
data_1 = data.find_all('div',class_='img')
for i in data_1:
i_1 = (i.find('a').get('href'))
seat = i_1.find('av') + 2
av.append(i_1)
return av
av = get_av()
cap = Counter('') #设置cap为Counter格式
for data in av:
print(str(av.index(data) + 1) + '/' + str(len(av)))
cap = cap + get_video(data)
print(Counter(cap).most_common(50)) OVOLin 发表于 2020-3-18 20:20
抓包发现弹幕信息要这玩意,然后每个视频对应一个cid,正好哔哩哔哩jj里可以找到
感谢大佬解惑。。。
如果想分析单个视频的弹幕或番合集啥的,如bilibili.com/bangumi/media/md28223066/
要如何修改,只动ranking那个网址,换了好像没有用 barnett2016 发表于 2020-3-18 20:30
感谢大佬解惑。。。
如果想分析单个视频的弹幕或番合集啥的,如bilibili.com/bangumi/media/md2822306 ...
每个网址审查元素大多不同,百度 Beautifulsoup教程 你这个可以下载视频不 xiaohua2020 发表于 2020-3-18 19:38
你这个可以下载视频不
下载唧唧可以下载视频
https://www.jijidown.com/ 本帖最后由 Zeaf 于 2020-3-18 20:07 编辑
大致看明白了,楼主可以的{:1_893:}
这个网站https://www.jijidown.com/倒是没用过
下次也不一定{:1_926:} 大佬,我能转载到BILIBILI吗 510可还行 老八上榜? 本帖最后由 barnett2016 于 2020-3-18 20:06 编辑
请问大佬,cid是什么? 和av号一样吗?
B站风气越来越不行了,“下次一定” 竟然是发的最多的,就不能说“上次给过了”嘛{:301_1001:} 谢谢大佬。长知识了
页:
[1]
2