寫在前面:現今絕大多數的網站都使用js來加載數據,傳統的請求方法很難再奏效,對動態數據的爬取現在大都分為兩類爬取方法:
1. 使用Selinium等自動化測試軟件去模擬瀏覽器,這種方法幾乎可以適用於所有網站,但是缺點是效率速度太慢了,如果有別的爬取方法,優先采用其他。
2. 對網頁直接進行抓包處理,這種方法效率相對較高,唯一的困難就是如何獲取api,特別是某些經過加密的例如網易雲(有時間再寫個個吧),有時候很難去解析。
前瞻:以 https://www.bilibili.com/video/av39807126 為例,

評論:打開后就是一個普通的B站視頻,在點擊評論下一頁時,Chrome網絡查看,
得到https://api.bilibili.com/x/v2/reply?callback=jQuery17204374912045669581_1563294492420&jsonp=jsonp&pn=2&type=1&oid=39807126&sort=2&_=1563294527125 這一長竄東西。當然直接肯定是打不開的。我們不要js請求,將 js 參數去掉,變成https://api.bilibili.com/x/v2/reply?jsonp=jsonp&pn=2&type=1&oid=39807126&sort=2&_=1563294527125,
可以得到 json 格式的評論。其中參數 pn 是評論的頁數 ; oid 就是視頻網址后面的 av那一串數字;sort一看就清楚是排序方式,0是按時間排序,2是按熱度;最后面的參數似乎沒有什么影響。
評論回復:就是評論后別人給你的回復的api。在有評論折疊的地方點擊 點擊查看 ,然后查看網絡

最后的字符串可以不要,參數ps是啥我也不太清楚,想知道的小伙伴可以去看下 js 源碼,應該能解出來;root是原始評論人的 rpid。
個人信息:
https://api.bilibili.com/x/space/acc/info?mid=264980&jsonp=jsonp,這個就不說了,和上面一樣,點擊用戶直接查就可以找到了。
彈幕:我是通過 fiddler 獲取的,Chrome上我好像沒有看到?在fiddler選擇框中輸入 select xml 選中文件如下:

得到:http://api.bilibili.com/x/v1/dm/list.so?oid=103015334
研究了下這個是實時彈幕的api,一般視頻上限就是1000,個別比如說很火的視頻可能會上3000或者更高。
