最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

前言

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

一、爬蟲是什么?

百度百科這樣說:自動(dòng)獲取網(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天開了個(gè)燈......視頻的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")

還有個(gè)值得提一下的地方是,發(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天開了個(gè)燈......視頻的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)行處理,來獲取我們想要的信息。這個(gè)時(shí)候,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庫的一個(gè)API存下就行了

#用字典創(chuàng)建了一個(gè)電子表格
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天開了個(gè)燈......視頻的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)建了一個(gè)電子表格
    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文件夾與文件的相關(guān)操作(推薦)

    Python文件夾與文件的相關(guān)操作(推薦)

    下面小編就為大家?guī)硪黄狿ython文件夾與文件的相關(guān)操作(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-07-07
  • 如何利用python讀取micaps文件詳解

    如何利用python讀取micaps文件詳解

    這篇文章主要給大家介紹了關(guān)于如何利用python讀取micaps文件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Python使用requests模塊爬取百度翻譯

    Python使用requests模塊爬取百度翻譯

    這篇文章主要介紹了Python使用requests模塊爬取百度翻譯,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • djano一對一、多對多、分頁實(shí)例代碼

    djano一對一、多對多、分頁實(shí)例代碼

    在本篇文章里小編給大家整理的是關(guān)于djano一對一,多對多,分頁實(shí)例代碼以及相關(guān)知識點(diǎn),需要的朋友們學(xué)習(xí)下。
    2019-08-08
  • Python基于pycrypto實(shí)現(xiàn)的AES加密和解密算法示例

    Python基于pycrypto實(shí)現(xiàn)的AES加密和解密算法示例

    這篇文章主要介紹了Python基于pycrypto實(shí)現(xiàn)的AES加密和解密算法,結(jié)合實(shí)例形式分析了Python使用pycrypto模塊進(jìn)行AES加密與解密操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-04-04
  • Python plt.boxplot函數(shù)及其參數(shù)使用小結(jié)

    Python plt.boxplot函數(shù)及其參數(shù)使用小結(jié)

    plt.boxplot函數(shù)用于繪制箱線圖,本文介紹了Python plt.boxplot函數(shù)及其參數(shù)使用小結(jié),文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • Python實(shí)戰(zhàn)之設(shè)計(jì)一個(gè)多功能辦公小工具

    Python實(shí)戰(zhàn)之設(shè)計(jì)一個(gè)多功能辦公小工具

    這篇文章主要介紹了通過Python制作一個(gè)多功能的辦公小工具,可以實(shí)現(xiàn)應(yīng)用、網(wǎng)頁直達(dá)以及天氣查詢,代碼具有一定學(xué)習(xí)價(jià)值,需要的小伙伴可以了解一下
    2021-12-12
  • Python pymysql向SQL語句中傳參的多種方法

    Python pymysql向SQL語句中傳參的多種方法

    這篇文章主要介紹了Python-pymysql如何向SQL語句中傳參,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • Python隨機(jī)數(shù)種子(random seed)的使用

    Python隨機(jī)數(shù)種子(random seed)的使用

    在科學(xué)技術(shù)和機(jī)器學(xué)習(xí)等其他算法相關(guān)任務(wù)中,我們經(jīng)常需要用到隨機(jī)數(shù),本文就詳細(xì)的介紹一下Python隨機(jī)數(shù)種子,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Django?ORM?事務(wù)和查詢優(yōu)化的操作方法

    Django?ORM?事務(wù)和查詢優(yōu)化的操作方法

    這篇文章主要介紹了Django?ORM?事務(wù)和查詢優(yōu)化,包括事務(wù)操作、ORM 惰性查詢及only與defer相關(guān)知識,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-09-09

最新評論

商都县| 正安县| 台安县| 阿勒泰市| 安图县| 贺兰县| 泗水县| 砚山县| 凭祥市| 镇原县| 石河子市| 靖宇县| 延长县| 汾西县| 革吉县| 磐安县| 日喀则市| 弥勒县| 孙吴县| 西林县| 钟祥市| 秦皇岛市| 兴城市| 安义县| 黎平县| 温泉县| 延寿县| 东乡县| 田阳县| 黄平县| 尼玛县| 敖汉旗| 肇源县| 绥滨县| 仲巴县| 兴文县| 永宁县| 溆浦县| 沿河| 达州市| 淳安县|