計劃本體:

JCav:?

zhuanlan.zhihu.com
圖標

授人以魚不如授人以漁。

本文章就是展示作者用fiddler查找彈幕API的過程。 畢竟一個人的力量是有限的,備份本就是個大工程,希望大家一起參與。

理解本文需要一定的http協議基礎,至少理解以下術語:

  • http協議
  • request
  • response
  • session
  • header
  • xml
  • url
  • gzip, deflate

Fiddler 簡介

簡單的來說就是一個網路調試工具,內含抓包,代理,調試網站等功能。

用於尋找彈幕API是再好不過的了。

還可以分析視頻直鏈然後下#¥……&**

咳咳,回到正題。

Fiddler下載地址:

官網?

www.telerik.com

安裝的話網上有詳細教程,百度一下就有了,這裡不再贅述。

打開後,有如下界面:

  1. 用於清空抓到的數據包(直接選擇delete行)
  2. 數據包內容查看器
  3. 抓包過濾設置
  4. 編寫http請求
  5. 開關:開始或暫停抓包

我們只會用到這幾個功能。

梨子:av107

對沒錯,萬惡之源

打開網址:

av107?

www.bilibili.com

關閉其他網頁,避免影響。

打開fiddler,刷新av107的網頁,點擊播放,看到彈幕後暫停,fiddler暫停抓包。

此時網頁應該是這樣:

fiddler類似是這樣(可能有不同):

然後在視頻里隨便複製一條彈幕,長點的,只有句號的就算了。

比如彈幕:藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍藍路路路

就比較ok(ヽ(???)?(???)? )

在fiddler中+F,打開查找界面,這樣設置:

然後find,運氣好的話只有一個session被標記。

選中後右側下方選擇"xml"然後隨便開一個「+」看看,如果是彈幕的話,我們就找到彈幕API了:

呼 哈 呼 哈 ...

?_?您的好友[鬼畜芙蘭·四重存在]已上線

我們從url中看到一個關鍵字oid

從method看到GET。

從cookies中看到,這個request沒有cookie。

那麼oid也許就是表示彈幕文件的id了(雖然都能猜到)。

驗證一下,我們把這條session一下的全部刪掉,保留這個session即之前的。

然後點開」composer「標籤頁,把這個session拖拽進去。

僅保留必要的headers:

"Execute"一下。發現得到的response和抓到的response一樣。

我么隨便改改oid後面的,比如改成735444。看看效果。

發現返回的response還是一個xml文件,內容為:

鬼知道這TM是啥視頻的彈幕

一看就是彈幕的味道。說明oid後面的數字就是彈幕池的編號之類的東西。

接下來我們怎麼得到一個視頻的oid呢?

還是用搜索,配置同上次的搜索,只是把搜索的值改為oid後的內容(73550718)。

有一堆,我們找最前面的那個,一看url不就是我們的視頻地址嗎???

然後回到瀏覽器中的視頻頁面,右鍵,查看源碼,<CTRL>+F搜索oid。

會有較多的結果,排除一些明顯無關的,我們發現:

cid=73550718&aid=107這句話比較優秀(英語老師臉)。

我們不難看出(數學老師臉):

aid --> av id,cid ---> chat id???

於是乎我們基本就能確定一個下載彈幕的計划了。

首先下載視頻所在網頁的源碼,解析出cid(可用regex),然後填充這個

url:https://api.bilibili.com/x/v1/dm/list.so?oid=<cid>,就OK了。

然後我們多用幾個視頻來驗證一下,發現都是可行的,於是我們可以下結論:

在目前階段,彈幕API是https://api.bilibili.com/x/v1/dm/list.so?oid=<cid>

為什麼是目前階段呢?

因為這些API會變,至少3年前API還是https://comment.bilibili.com/<cid>.xml

PS:那時我還沒入東方坑。

至於更進一步的,歷史彈幕的API,以及bangumi下的cid查找,可以用相似的方法得出,這裡不再贅述。

再進一步的,使用程序來規模化的下載彈幕,那就是爬蟲了。

PS:

看到那個upos開頭的url的包了嗎??猜猜那是啥。(/ω\)

本文中有提到哦(~ ̄▽ ̄)~

聲明

本文顯示的所有內容僅用於學習交流,不得用於商業用途,請在遵循法律的前提下實踐本文內容,觀看者的所有行為與本文無關。

警告

如果看了本文,入了爬蟲的坑的朋友們(估計沒有),一定記得。

閱讀網站的Robots.txt文檔(記錄了允許爬取的信息)。

閱讀網站的Robots.txt文檔。

閱讀網站的Robots.txt文檔。

雖然這個文檔的協議是基於道德的。。。

但不要輕易逾越(Bidders Edge公司發來賀電)。

以及,僅僅爬取公開的信息。

也就是說,當且僅當一個爬蟲可以由人工在正常上網、不使用任何技術手段的條件下花費大量的時間可以達到同樣的效果時,這個爬蟲是合法的。

往期回顧

  1. 計劃本體:

JCav:Bilibili Touhou 彈幕備份計劃(含彈幕爬蟲)?

zhuanlan.zhihu.com圖標

2. 彈幕爬蟲發布:

JCav:bili Touhou 備份計劃(20190205.1) 發布彈幕爬蟲?

zhuanlan.zhihu.com圖標

吐槽

啊啊啊啊為什麼華燈宴是初二才有,我要死啦!!!ψ(*`ー′)ψ|(缺少了合理的咕咕咕理由)

woc文章一多都找不到配圖了。。(我的珍藏桌面....)

我發現標題取bili不好,似乎不會算在bilibili的搜索結果裡面_(:з」∠)_ 我還是用bilibili好了....那我是不是應該把touhou改成東方???

B站爸爸ip不要封得這麼嚴厲啊啊啊,我錯了(一次性備份兩年彈幕的下場...)

[釣符] 三年前我還是MC坑的一員(看我主頁背景)

推薦閱讀:

相关文章