欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

你會使用python爬蟲抓取彈幕嗎

 更新時間:2022年02月08日 09:23:34   作者:璨星爍  
這篇文章主要為大家詳細(xì)介紹了python爬蟲抓取彈幕的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

前言

時隔108天,何同學(xué)在B站發(fā)布了最新的視頻,《【何同學(xué)】我用108天開了個燈…》。那么就讓我們用爬蟲,爬取視頻的彈幕,看看小伙伴們是怎么評價的吧

一、爬蟲是什么?

百度百科這樣說:自動獲取網(wǎng)頁內(nèi)容的程序。在我理解看來,爬蟲就是~~“在網(wǎng)絡(luò)上爬來爬去的…”住口!~~
那么接下來就讓我們看看如何養(yǎng)搬運(yùn)B站彈幕的“蟲”吧

二、飼養(yǎng)步驟

1.請求彈幕

首先,得知道爬取的網(wǎng)站url是什么。對于B站彈幕而言,彈幕所在位置是有固定格式的:

http://comment.bilibili.com/+cid+.xml

ok,那么問題來了,cid是什么呢?不用管是什么,我告訴你怎么獲取。

1.打開視頻后點(diǎn)擊F12,切換到“網(wǎng)絡(luò)”,在篩選器處填入“cid”進(jìn)行篩選。

在這里插入圖片描述

2.點(diǎn)擊篩選出的網(wǎng)絡(luò)信息,在右端Payload處找到cid

在這里插入圖片描述

3.到此,我們就知道了何同學(xué)視頻彈幕的網(wǎng)絡(luò)鏈接:

http://comment.bilibili.com/499893135.xml

4.接著就是發(fā)送網(wǎng)絡(luò)請求,獲取網(wǎng)絡(luò)頁面資源。Python有很多發(fā)送網(wǎng)絡(luò)請求的庫。比如:

  • urllib庫
  • requests庫

我們用reaquests庫演示

發(fā)送請求的代碼如下

(示例):

#【何同學(xué)】我用108天開了個燈......視頻的cid:499893135
#彈幕所在地
url = "http://comment.bilibili.com/499893135.xml"
#發(fā)送請求
req = requests.get(url = url)
#獲取內(nèi)容響應(yīng)的內(nèi)容
html_byte = req.content
#將byte轉(zhuǎn)為str
html_str = str(html_byte,"utf-8")

還有個值得提一下的地方是,發(fā)送請求的請求頭可以加上,偽裝自己是瀏覽器訪問??梢酝ㄟ^header參數(shù),加上user-agent,獲取方式如下:

在這里插入圖片描述

那么,代碼就是下面這樣了:

#假裝自己是瀏覽器
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'
}
#【何同學(xué)】我用108天開了個燈......視頻的cid:499893135
#彈幕所在地
url = "http://comment.bilibili.com/499893135.xml"
#發(fā)送請求
req = requests.get(url = url, headers=header)
#獲取內(nèi)容響應(yīng)的內(nèi)容
html_byte = req.content
#將byte轉(zhuǎn)為str
html_str = str(html_byte,"utf-8")

2.解析彈幕

html_str是html文件的格式,我們需要對其進(jìn)行處理,來獲取我們想要的信息。這個時候,BeautifulSoup庫就要閃亮登場了,我們用它來處理得到的html文件

代碼如下(示例):

#解析
    soup = BeautifulSoup(html,'html.parser')
    #找到html文件里的<d>標(biāo)簽
    results = soup.find_all('d')
    #把標(biāo)簽里的文本提取出來
    contents = [x.text for x in results]
    #存為字典
    dic ={"contents" : contents}

contents就是彈幕字符串列表了,存成字典是為了下一步…

3.存儲彈幕

把彈幕信息存儲成excel,也有好多庫可以用。比如:

  • xlwt庫
  • pandas庫

我們就用pandas庫把

代碼如下(示例):

把用第二步得到的字典創(chuàng)建dataFrame,然后用pandas庫的一個API存下就行了

#用字典創(chuàng)建了一個電子表格
df = pd.DataFrame(dic)
df["contents"].to_excel('htx.xlsx')

4.總代碼

import requests
from 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'
    }
    #【何同學(xué)】我用108天開了個燈......視頻的cid:499893135
    #彈幕所在地
    url = "http://comment.bilibili.com/499893135.xml"
    req = requests.get(url = url, headers=header)
    html_byte = req.content#字節(jié)
    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]
    #保存結(jié)果
    dic ={"contents" : contents}
    return dic
 def writeExcel(dic):
    #用字典創(chuàng)建了一個電子表格
    df = pd.DataFrame(dic)
    df["contents"].to_excel('htx.xlsx')
 if __name__ == '__main__':
    main()
 

三、總結(jié)

爬蟲簡單來說呢,就三步:

1.發(fā)送網(wǎng)絡(luò)請求,獲取資源

2.進(jìn)行搜索等操作來獲取有用信息

3.存儲信息

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • Python如何從列表中刪除相鄰和不相鄰的相同元素

    Python如何從列表中刪除相鄰和不相鄰的相同元素

    這篇文章主要介紹了Python如何從列表中刪除相鄰和不相鄰的相同元素問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python測試框架pytest介紹

    Python測試框架pytest介紹

    這篇文章主要介紹了Python測試框架pytest介紹,Pytest是一個非常成熟的全功能的python測試框架,有簡單靈活易上手、支持參數(shù)化等優(yōu)點(diǎn),下面其相關(guān)內(nèi)容需要的小伙伴可以參考一下
    2022-03-03
  • Numpy中的repeat函數(shù)使用

    Numpy中的repeat函數(shù)使用

    Numpy是Python強(qiáng)大的數(shù)學(xué)計(jì)算庫,和Scipy一起構(gòu)建起Python科學(xué)計(jì)算生態(tài),在本節(jié)下面我們重點(diǎn)介紹下repeat函數(shù)的用法,需要的朋友可以參考下
    2022-11-11
  • 在python的類中動態(tài)添加屬性與生成對象

    在python的類中動態(tài)添加屬性與生成對象

    這篇文章給大家介紹了如何在python的類中動態(tài)添加屬性和生成對象,文中通過幾個方面來進(jìn)行介紹,對這感興趣的朋友們可以學(xué)習(xí)學(xué)習(xí)。
    2016-09-09
  • python實(shí)現(xiàn)異步回調(diào)機(jī)制代碼分享

    python實(shí)現(xiàn)異步回調(diào)機(jī)制代碼分享

    本文介紹了python實(shí)現(xiàn)異步回調(diào)機(jī)制的功能,大家參考使用吧
    2014-01-01
  • 關(guān)于python中導(dǎo)入文件到list的問題

    關(guān)于python中導(dǎo)入文件到list的問題

    這篇文章主要介紹了關(guān)于python中導(dǎo)入文件到list的問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • 云原生Docker部署Django和mysql項(xiàng)目全過程

    云原生Docker部署Django和mysql項(xiàng)目全過程

    最近在學(xué)習(xí)用docker部署Django項(xiàng)目,經(jīng)過百折不撓的鼓搗,終于將項(xiàng)目部署成功,下面這篇文章主要給大家介紹了關(guān)于云原生Docker部署Django和mysql項(xiàng)目的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • Python實(shí)現(xiàn)提前查詢考研成績功能

    Python實(shí)現(xiàn)提前查詢考研成績功能

    這篇文章主要介紹了Python實(shí)現(xiàn)提前查詢考研成績,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • Python無參裝飾器的實(shí)現(xiàn)方案及優(yōu)化

    Python無參裝飾器的實(shí)現(xiàn)方案及優(yōu)化

    裝飾器(Decorators)是 Python 的一個重要部分,所謂裝飾器就是閉包函數(shù)的一種應(yīng)用場景,這篇文章主要給大家介紹了關(guān)于Python無參裝飾器的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • 對python字典過濾條件的實(shí)例詳解

    對python字典過濾條件的實(shí)例詳解

    今天小編就為大家分享一篇對python字典過濾條件的實(shí)例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01

最新評論