python弹幕代码_python采集b站弹幕逻辑及python脚本

-0-受brave or 皮卡丘的启发,想试试采集b站的弹幕,因为以前采集过b站的700万基础数据,所以这次觉得应该也很简单

然而。

先说逻辑:找到b站弹幕调用方式->找出调用文件或者数据接口->采集数据入库。

第一步耗费的时间最多,因为我翻了好多名字里带av号的包,都没找到有弹幕内容的,幸亏 brave or 皮卡丘 提醒,我才发现b站竟然给字幕文件的命名不是按照av号来了。。然后通过network,就知道弹幕文件的地址应该是http://comment.bilibili.com/+和av号有关联的数字+.xml既然知道有这个猫腻,那下一步就需要找到av号和弹幕文件名之间的关联了。幸好,在视频的源代码里,有这个说明

可以看到,红框部分一个是cid也就是弹幕文件的名字,一个是aid,也就是av号的名字。

这样,我们就可以知道弹幕文件地址是在http://comment.bilibili.com/16952307.xml里了。

这步一解决,后面就简单了。整个逻辑就变成

1.生成url

2.采集url代码

3.匹配到cid和aid

4.根据cid生成弹幕文件的url

5.匹配弹幕文件中的汉字

6.将aid和弹幕汉字入库。

下面贴代码:for循环的tab需要自己填上,也是为了引导大家更深入了解代码的结构和逻辑

import sys

reload(sys)

sys.setdefaultencoding( "utf-8" )

import urllib2,re,requests

danmu = open('danmu.txt','a')

for url in open('url.txt'):

#html = urllib2.urlopen('http://www.bilibili.com/video/av10262216/').read()

html = requests.get(url).text

#zhen.write(html +'\n')

#print html

for cid,aid in re.findall(r'cid=(\d+)&aid=(\d+)',html):

# print cid,aid

danmuurl='http://comment.bilibili.com/'+cid+'.xml'

danmuhtml = requests.get(danmuurl).text

# print danmuhtml

for danmuwenzi in re.findall(r'">(.*?)',danmuhtml):

danmu.write(aid+','+danmuwenzi+'\n')

分享到:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值