import requests import re #正则表达式模块 url = 'https://api.bilibili.com/x/v1/dm/list.so?oid=460329133' #1 发送请求 #请求方式的注意是get或者post #还有参数 #headers请求头作用是吧python代码进行伪装模拟成浏览器去发送请求一般只要一个user-agent就行了 #ua内涵浏览器基本属性 headers={ 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36' } #通过requests模块里面的get的请求方法对url进行访问 #2 获取数据 response=requests.get(url=url,headers=headers) response.encoding=response.apparent_encoding #自动识别代码去除乱码 #print(response) #返回结果:<Response [200]> ,200状态表示请求成功 #如果想要网页源代码加上.text #print(response.text) 测试对象 #3 解析数据,提取想要的数据内容,弹幕数据 #正则表达式,直接对于字符串数据进行获取,css,xpath主要根据标签属性、节点进行提取 datalist=re.findall('<d p=".*?">(.*?)</d>',response.text) #加()是获取对象,不加括号就是单纯的匹配比对,.*?通配符 #print(datalist) for index in datalist: with open('弹幕.txt', mode='a', encoding='utf-8') as f: f.write(index) f.write('\n') print(index) #遍历datalist进行提取每一个元素 #4 保存数据,把获取下来的数据内容保存为txt文本
这部分仅仅是部分弹幕的爬取,是b站提供的接口里面爬取的弹幕,实时弹幕还是需要按照时间具体爬取