日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python爬蟲 bilibili視頻彈幕提取過程詳解

系統 2839 0

兩個重要點

1.獲取彈幕的url是以 .xml 結尾

2.彈幕url的所需參數在視頻url響應的 javascript 中

先看代碼

            
import requests
from lxml import etree
import re
# 使用手機UA
headers = {
  "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"
}
# 視頻url
video_url = "https://m.bilibili.com/video/av37834086.html"
html = requests.get(url=video_url, headers=headers).content.decode('utf-8')
# 獲取彈幕url的參數
cid = re.findall(r"comment: '//comment.bilibili.com/' \+ (.*?) \+ '.xml',", html)
url = "https://comment.bilibili.com/" + cid[0] + ".xml"
print(url)
response = requests.get(url, headers=headers)
html = response.content
xml = etree.HTML(html)
# 提取數據
str_list = xml.xpath("http://d/text()")
# 寫入文件
with open('bibi_xuxubaobao.txt', 'w', encoding='utf-8') as f:
  for line in str_list:
    f.write(line)
    f.write('\n')
          

先找到彈幕的url,以.xml結尾,所以先找到這串數字所在的位置,并獲取這串數字發起第二次請求

而這串數字就在 第一次請求的響應的JavaScript中,可以通過 re 正則表達式進行提取

接下來的工作就是獲取彈幕url返回的所有彈幕數據,然后對響應進行數據處理。

代碼示例中使用的是 lxml 進行獲取。接著就是保存到個人本地文件中了

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 容城县| 洛宁县| 拜泉县| 大英县| 潞西市| 奎屯市| 南皮县| 唐山市| 马关县| 北宁市| 江阴市| 墨竹工卡县| 临城县| 扎兰屯市| 宜宾市| 宜阳县| 白水县| 怀柔区| 新蔡县| 福海县| 德昌县| 邵阳县| 甘孜| 马关县| 无棣县| 夏津县| 长泰县| 兴化市| 张家界市| 兴城市| 苍南县| 泰和县| 海原县| 景谷| 巴彦淖尔市| 恭城| 湖南省| 凤庆县| 巴彦淖尔市| 高平市| 宜都市|