比如說這裡我隨便開乙個網頁:
在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 ...