【第4篇】Python爬虫实战-抓取B站弹幕视频
目录
1、获取视频cid参数
首先我们打开一个有弹幕的B站视频,比如:《我好像在哪见过你》人们把难言的爱都埋入土壤里_哔哩哔哩_bilibili
然后我们打开控制台(快捷键F12)
我们可以找到该视频的cid值:420771013
然后我们将cid作为程序的参数即可。
2、程序源代码
- #!/usr/bin/python
- # -*- coding: UTF-8 -*-
- """
- @author: Roc-xb
- """
-
- import requests
- from bs4 import BeautifulSoup
- import pandas as pd
- import re
-
- if __name__ == '__main__':
- # 弹幕保存文件
- file_name = '弹幕.csv'
- # 获取页面
- cid = input("请输入cid:")
- # 弹幕API接口
- url = "https://comment.bilibili.com/{}.xml".format(cid)
- 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 = 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 = pd.DataFrame(data)
- df.to_csv(file_name, index=False, header=None, encoding="utf_8")
- print("弹幕抓取成功!")
3、程序运行结果
- #!/usr/bin/python
- # -*- coding: UTF-8 -*-
- """
- @author: Roc-xb
- """
-
- import requests
- from bs4 import BeautifulSoup
- import pandas as pd
- import re
-
- if __name__ == '__main__':
- # 弹幕保存文件
- file_name = '弹幕.csv'
- # 获取页面
- cid = input("请输入cid:")
- # 弹幕API接口
- url = "https://comment.bilibili.com/{}.xml".format(cid)
- 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 = 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 = pd.DataFrame(data)
- df.to_csv(file_name, index=False, header=None, encoding="utf_8")
- print("弹幕抓取成功!")
4、总结
程序代码主要只做了一件事情,就是请求API接口,然后解析出弹幕数据,相对而言,算是一个比较简单的案例,适合刚学习python的朋友练练手。
推荐阅读