OVOLin 发表于 2020-3-18 19:33

哔哩哔哩排行榜弹幕发送排名,发的最多的竟然是?

https://attach.52pojie.cn//forum/202003/18/193248gccmygggcz8c3hmb.png?limport requests
import 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))

barnett2016 发表于 2020-3-18 20:30

OVOLin 发表于 2020-3-18 20:20
抓包发现弹幕信息要这玩意,然后每个视频对应一个cid,正好哔哩哔哩jj里可以找到

感谢大佬解惑。。。

如果想分析单个视频的弹幕或番合集啥的,如bilibili.com/bangumi/media/md28223066/
要如何修改,只动ranking那个网址,换了好像没有用

OVOLin 发表于 2020-3-18 20:41

barnett2016 发表于 2020-3-18 20:30
感谢大佬解惑。。。

如果想分析单个视频的弹幕或番合集啥的,如bilibili.com/bangumi/media/md2822306 ...

每个网址审查元素大多不同,百度 Beautifulsoup教程

xiaohua2020 发表于 2020-3-18 19:38

你这个可以下载视频不

薰衣艹 发表于 2020-3-18 19:41

xiaohua2020 发表于 2020-3-18 19:38
你这个可以下载视频不

下载唧唧可以下载视频
https://www.jijidown.com/

Zeaf 发表于 2020-3-18 19:43

本帖最后由 Zeaf 于 2020-3-18 20:07 编辑

大致看明白了,楼主可以的{:1_893:}
这个网站https://www.jijidown.com/倒是没用过
下次也不一定{:1_926:}

52pj353171 发表于 2020-3-18 19:46

大佬,我能转载到BILIBILI吗

看,六眼飞鱼 发表于 2020-3-18 19:48

510可还行

919359733 发表于 2020-3-18 19:51

老八上榜?

barnett2016 发表于 2020-3-18 19:58

本帖最后由 barnett2016 于 2020-3-18 20:06 编辑

请问大佬,cid是什么? 和av号一样吗?

苏晓宇c 发表于 2020-3-18 20:08

B站风气越来越不行了,“下次一定” 竟然是发的最多的,就不能说“上次给过了”嘛{:301_1001:}

五年级一班很好 发表于 2020-3-18 20:11

谢谢大佬。长知识了
页: [1] 2
查看完整版本: 哔哩哔哩排行榜弹幕发送排名,发的最多的竟然是?