当前位置:   article > 正文

【实验】通过requests和re爬取b站弹幕并保存

【实验】通过requests和re爬取b站弹幕并保存

实验目的:

本实验要求通过requestsre第三方库用于爬取b站的弹幕并保存为txt文件。

爬取网站:
url = 'https://api.bilibili.com/x/v1/dm/list.so?oid=767237785'

实验操作环境: 

电脑操作环境为Window10系统,采用python3.9并利用Pycharm IDE进行爬虫相关操作。

第三方库版本:

requests:  2.28.1

fake_useragent:1.2.1

实验步骤:

导入相关库:
  1. import requests # 用于发送HTTP请求
  2. import re # 导入正则表达式库,用于文本解析
  3. from fake_useragent import UserAgent # 用于随机生成随机User-Agent
生成请求头:

利用UserAgent生成随机请求头:

  1. # 设置请求的URL
  2. url = 'https://api.bilibili.com/x/v1/dm/list.so?oid=767237785'
  3. headers = {'user-agent': UserAgent().random} # 设置请求的URL
发送请求:
  1. r = requests.get(url, headers=headers) # 请求发送
  2. # 查看请求结果
  3. print(r.text)

结果:

分析:可以看出出现乱码,因此下一步进行编码转换。

  1. # 编码转换
  2. r.encoding = 'utf-8'
  3. # 输出结果
  4. print(r.text)

结果如下:其中红色为我们需要爬取的内容:

解析文本数据:

以下".*?"为正则化表达式,用于匹配以上红线元素p内容,()括号内同理,其为我们需要爬取的内容。

  1. # 使用正则表达式解析响应文本,获取所有匹配的内容
  2. content_list = re.findall('<d p=".*?">(.*?)</d>', r.text)
文档写入:

注意提前创建"弹幕.txt"文件。

  1. # 将解析的数据写入文件
  2. for content in content_list: # 遍历解析得到的内容列表
  3. # 以追加模式打开文件,编码方式为UTF-8
  4. with open('弹幕.txt', 'a', encoding='utf-8') as f:
  5. f.write(content) # 将内容写入文件
  6. f.write('\n') # 在内容后添加换行符
文档内容如下:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/471505
推荐阅读
相关标签
  

闽ICP备14008679号