Python爬取B站弹幕的思路和流程

做nlp项目,除了各大电商评论和微博数据,弹幕分析对于舆论和该视频的推广都是有帮助的,下面主要说说这么从B站爬取弹幕。

过程很简单,我们来看看:

1. 首先,bilibili的弹幕是在xml文件里,每个视频都有其对应的cid和aid,我们取到cid中的数字放入http://comment.bilibili.com/+cid+.xml,即可得到该视频对应的cid。

比如:打开这个链接http://comment.bilibili.com/2015358.xml,就可以看到:

Python爬取B站弹幕的思路和流程_第1张图片

cid取法:在页面上F12,然后查找cid,该cid即为弹幕页的标识。

Python爬取B站弹幕的思路和流程_第2张图片

这样就可以找到该视频的cid,然后根据第一步拼成弹幕url,即可解析提取弹幕。

cid的值其实很好找,打开浏览器,找到heartbeat请求,在该请求的From Data中找到cid的值,如下图所示:

 

应网友要求,增加个爬虫代码,代码很简单:

 

import requests
from bs4 import BeautifulSoup
import pandas as pd

url = 'http://comment.bilibili.com/65927049.xml'
req = requests.get(url)
html = req.content
html_doc=str(html,'utf-8')   #修改成utf-8

#解析
soup = BeautifulSoup(html_doc,"lxml")

results = soup.find_all('d')

contents = [x.text for x in results]

#保存结果
table_dict = {"contents":contents}
df = pd.DataFrame(table_dict)
df.to_csv("bibi.csv",encoding='utf-8')

好了,B站的弹幕就是这样拿到了,简单吧。

你可能感兴趣的:(Python爬虫)