GreenHand爬虫系列03——爬取B站弹幕

本次是萌新爬虫的第三弹,这回咱整个好活——
爬取B站弹幕!!!
因为本人也是高纯度萌新,涉及到的很多模块和方法都是高人指点的(生活不易菜鸡叹气)

网址如下:https://www.bilibili.com

在这里插入图片描述
看到眼花缭乱的弹幕很想统统爪巴下来是吧?
在这里插入图片描述
别着急,且听下回分解(错乱)

1.导入模块

#爬取B站弹幕
import bs4
import pandas
import re
import requests

2.保存文件

file_name="越共探头.txt"#弹幕保存文件

3.获取页面

当打开一个B站视频,按下F12后进入网络,在其一系列数目庞杂的数据报文中有一类所谓“心跳包”的heartbeat需要引人注意:在这里插入图片描述
点击标头进入其中,发现参数cid,这就是一个突破点——
因为弹幕存储在相应参数的.xml网页中!
在这里插入图片描述
以上就是我们需要的目标url

#获取页面
cid=410337606
url="https://comment.bilibili.com/"+str(cid)+".xml"
headers={"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"}
request=requests.get(url=url, headers=headers)
request.encoding="utf-8"

4.提取弹幕

#提取弹幕
soup=bs4.BeautifulSoup(request.text,"lxml")
results=soup.find_all("d")

5.数据处理

#数据处理
data=[data.text for data in results]
for i in data:#正则去掉多余的空格和换行
    i=re.sub("\s+"," ",i)

6.查看数量

#查看数量
print("弹幕数量为{}".format(len(data)))

7.输出文件

#输出文件
df=pandas.DataFrame(data)
df.to_csv(file_name,index=False,header=None,encoding="utf_8_sig")
print("保存成功")

8.完整代码

#爬取B站弹幕
import bs4
import pandas
import re
import requests

file_name="越共探头.txt"#弹幕保存文件

#获取页面
cid=410337606
url="https://comment.bilibili.com/"+str(cid)+".xml"
headers={"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"}
request=requests.get(url=url, headers=headers)
request.encoding="utf-8"

#提取弹幕
soup=bs4.BeautifulSoup(request.text,"lxml")
results=soup.find_all("d")

#数据处理
data=[data.text for data in results]
for i in data:#正则去掉多余的空格和换行
    i=re.sub("\s+"," ",i)

#查看数量
print("弹幕数量为{}".format(len(data)))

#输出文件
df=pandas.DataFrame(data)
df.to_csv(file_name,index=False,header=None,encoding="utf_8_sig")
print("保存成功")

9.部分结果展示

2
1
2
我记得狼群里是拿打火机烧,说直接拔掉可能会让蚂蟥的口器留在皮肤上感染
1
当时中国去缅甸的远征军觉得很淦
55555555
3
《铀刃》
111
3
2
1111111
1
55555555
《小牙签》
还可以用烟头烫,用盐腌
《不知名萨姆防空部队》
《 完 的 开 心 》
55555555
1
111
硬核地下
旅长:想不到吧?这里也有我
1
5555555
已经三连
给群友送鲜橙多.jpg
防空树!
3
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值