爬蟲專欄6 爬取B站彈幕

2021-10-05 19:18:57 字數 2090 閱讀 1319

比如說這裡我隨便開乙個網頁:

在xhr標籤裡面可以看到乙個小眼睛圖示的玩意兒,開啟那個url進去之後:

就可以直接提取了

ps:1.針對匹配,乙個尖括號結束之後最好用.*?過渡到另乙個尖括號,不要什麼都不加,可能抓不出來

2.這是針對response.text和response.content.decode(『utf-8』)的區別的,針對b站爬取就體現出來了,不用後者爬出來的就是亂碼

同時爬取的彈幕的xml檔案好像不能用審查元素,因為它本身就已經是xml檔案,所以直接對網頁的資料記性正規表示式的匹配就行了

import requests

import re

from requests.exceptions import requestexception

import csv

#csv的a+性質表示追加,這個和pandas的to_csv的mode='a'是一樣的道理

csv_file =

open

(r'e:\vscode_code\爬蟲測試\b站\danmu.csv'

,'w'

, newline=

'', encoding=

'utf-8-sig'

)# 解決中文亂碼問題

writer = csv.writer(csv_file)

#這個理論上應該用w模式開啟,這裡懶得改了

writer.writerow(

['彈幕'])

url =

''defget_one_page

(url)

:try

: headers =

response = requests.get(url, headers = headers)

#這裡,,不知道為啥要這樣,可能是網頁的編碼方式不同

content=response.content.decode(

'utf-8'

)if response.status_code==

200:

#return response.text

return content

return

none

except requestexception:

return

none

defparse_one_page

(html)

:#csv的a+性質表示追加,這個和pandas的to_csv的mode='a'是一樣的道理

csv_file =

open

(r'e:\vscode_code\爬蟲測試\b站\danmu.csv'

,'a+'

, newline=

'', encoding=

'utf-8-sig'

)# 解決中文亂碼問題

writer = csv.writer(csv_file)

pattern = re.

compile

(r'(.*?)'

,re.s)

##正則

items = re.findall(pattern,html)

for item in items:

#在這裡給他分開讀取

writer.writerow(

[item]

)#print(item)

#print(items)

csv_file.close(

)def

main()

: html = get_one_page(url)

#print('列印第',(i+1),'頁')

parse_one_page(html)

print

('ok'

)if __name__==

'__main__'

: main(

)

爬取B站彈幕

最近幾天學習爬蟲,便爬取了b站的彈幕,本篇博文記錄的是爬取彈幕的方法一,近期會更新方法二。下面是流程 點開這個包是這個形式的 這裡面就有明文的彈幕,但通過requests獲得的response是經過utf 8編碼加密過的,想要獲得彈幕內容還要解密。下面附 from bs4 import beauti...

python爬取B站彈幕學習筆記

然後開啟檢查,選擇net 這個位址就是存放彈幕的檔案 接下來我們之間用request模組去get文字,beautifulsoup去處理獲取文字,然後匯入到詞云 匯入擴充套件庫 import re 正規表示式庫 import collections 詞頻統計庫 import numpy as np n...

python 爬蟲 b站彈幕爬蟲

coding utf 8 獲取bilibili直播間彈幕 房間號從網頁源 中獲取 開啟直播畫面後,按ctrl u 開啟網頁源 按ctrl f 搜尋 room id 搜到的 room id 1016中,1016就是房間號 獲取不 間的彈幕 修改 第26行的roomid的值為對應的房間號 import ...