WHCSRL 技术网

【第4篇】Python爬虫实战-抓取B站弹幕视频

目录

1、获取视频cid参数

2、程序源代码

3、程序运行结果

4、总结


1、获取视频cid参数

首先我们打开一个有弹幕的B站视频,比如:《我好像在哪见过你》人们把难言的爱都埋入土壤里_哔哩哔哩_bilibili

然后我们打开控制台(快捷键F12)

我们可以找到该视频的cid值:420771013

然后我们将cid作为程序的参数即可。 

2、程序源代码

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. """
  4. @author: Roc-xb
  5. """
  6. import requests
  7. from bs4 import BeautifulSoup
  8. import pandas as pd
  9. import re
  10. if __name__ == '__main__':
  11. # 弹幕保存文件
  12. file_name = '弹幕.csv'
  13. # 获取页面
  14. cid = input("请输入cid:")
  15. # 弹幕API接口
  16. url = "https://comment.bilibili.com/{}.xml".format(cid)
  17. headers = {
  18. 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
  19. }
  20. request = requests.get(url=url, headers=headers)
  21. # 设置请求编码格式
  22. request.encoding = 'utf-8'
  23. # 提取弹幕
  24. soup = BeautifulSoup(request.text, 'lxml')
  25. results = soup.find_all('d')
  26. # 数据处理
  27. data = [data.text for data in results]
  28. # 正则去掉多余的空格和换行
  29. for i in data:
  30. i = re.sub('s+', '', i)
  31. # 查看数量
  32. print("弹幕数量为:{}".format(len(data)))
  33. # 输出到文件
  34. df = pd.DataFrame(data)
  35. df.to_csv(file_name, index=False, header=None, encoding="utf_8")
  36. print("弹幕抓取成功!")

3、程序运行结果

4、总结

程序代码主要只做了一件事情,就是请求API接口,然后解析出弹幕数据,相对而言,算是一个比较简单的案例,适合刚学习python的朋友练练手。

推荐阅读