爬虫爬取弹幕,python爬取直播弹幕
本文主要详细介绍python爬虫抓取弹幕的方法。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。
00-1010前言一、什么是爬行动物?2.喂食第一步。请求弹幕2。分析弹幕3。存储弹幕4。通用代码3。总结一下。
目录
108天后,他在哔哩哔哩发布了最新视频《【何同学】我用108天开了个灯…》。那我们就用爬虫爬上视频的弹幕,看看朋友们怎么说。
前言
百度是这样说的:自动获取网页内容的程序.据我理解,爬虫就是~ ~“在网上爬来爬去…”闭嘴!~~
那么让我们来看看如何提高“蠕虫”携带哔哩哔哩弹幕。
一、爬虫是什么?
二、饲养步骤
首先,你需要知道被抓取的网站的网址是什么。对于哔哩哔哩弹幕,弹幕的位置有一个固定的格式:
http://comment.bilibili.com/刑事调查局。可扩展标记语言
好了,那么问题来了,cid是什么?不管是什么,我会告诉你怎么得到它。
1.打开视频后点击F12,切换到“网络”,在滤镜处填写“cid”即可过滤。
2.单击筛选出的网络信息,并在右端的有效负载中找到cid。
3.至此,我们知道了同学何的视频弹幕的网络链接:
http://comment.bilibili.com/499893135.xml
4.下一步是发送网络请求以获取网络页面资源。Python有许多用于发送网络请求的库。例如:
我们用请求库来演示。
请求的代码如下
(示例):
#[同学何]108天我开了一盏灯.视频的CID:499893135
#拦河坝的位置
URL= http://comment . bilibili.com/499893135 . XML
#发送请求
req=requests.get(url=url)
#获取内容响应的内容
html _字节=req.content
#将字节转换为字符串
html_str=str(html_byte, utf-8 )
另外值得一提的是,可以添加发送请求的请求头来假装是浏览器访问。您可以使用header参数和user-agent来获取它,如下所示:
因此,代码看起来像这样:
#假装是一个浏览器
header={
用户代理“:”Mozilla/5.0(Windows NT 10.0;Win64x64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/98 . 0 . 4758 . 80 Safari/537.36 Edg/98 . 0 . 1108 . 43
}
#[同学何]108天我开了一盏灯.视频的CID:499893135
#拦河坝的位置
URL= http://comment . bilibili.com/499893135 . XML
#发送请求
req=requests.get(url=url,headers=header)
#获取内容响应的内容
html _字节=req.content
#将字节转换为字符串
html_str=str(html_byte, utf-8 )
1.请求弹幕
Html_str是Html文件的格式,我们需要对它进行处理才能得到我们想要的信息。这时,博
tifulSoup库就要闪亮登场了,我们用它来处理得到的html文件
代码如下(示例):
#解析soup = BeautifulSoup(html,html.parser)
#找到html文件里的<d>标签
results = soup.find_all(d)
#把标签里的文本提取出来
contents = [x.text for x in results]
#存为字典
dic ={"contents" : contents}
contents就是弹幕字符串列表了,存成字典是为了下一步…
3.存储弹幕
把弹幕信息存储成excel,也有好多库可以用。比如:
- xlwt库
- pandas库
我们就用pandas库把
代码如下(示例):
把用第二步得到的字典创建dataFrame,然后用pandas库的一个API存下就行了
#用字典创建了一个电子表格df = pd.DataFrame(dic)
df["contents"].to_excel(htx.xlsx)
4.总代码
import requestsfrom bs4 import BeautifulSoup
import pandas as pd
def main():
html = askUrl()
dic =analyse(html)
writeExcel(dic)
def askUrl():
#假装自己是浏览器
header ={
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36 Edg/98.0.1108.43
}
#【何同学】我用108天开了个灯......视频的cid:499893135
#弹幕所在地
url = "http://comment.bilibili.com/499893135.xml"
req = requests.get(url = url, headers=header)
html_byte = req.content#字节
html_str = str(html_byte,"utf-8")
return html_str
def analyse(html):
soup = BeautifulSoup(html,html.parser)
results = soup.find_all(d)
#x.text表示要放到contents中的值
contents = [x.text for x in results]
#保存结果
dic ={"contents" : contents}
return dic
def writeExcel(dic):
#用字典创建了一个电子表格
df = pd.DataFrame(dic)
df["contents"].to_excel(htx.xlsx)
if __name__ == __main__:
main()
三、总结
爬虫简单来说呢,就三步:
1.发送网络请求,获取资源
2.进行搜索等操作来获取有用信息
3.存储信息
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注盛行IT软件开发工作室的更多内容!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。