源碼鏈接:https://pan.baidu.com/s/1oOAxJqSMCyVJPNv-iAYW7A
提取碼:1co9
Java+Jsoup爬蟲小紅書,微博,B站
爬取地址:https://www.bilibili.com/video/BV1HE411b7nj
目標:抓取視頻的點贊量,投幣量,收藏量,轉發量
1.F12分析下頁面
點贊量:#arc_toolbar_report下面的.like
投幣量:#arc_toolbar_report下面的.coin
收藏量:#arc_toolbar_report下面的.collect
轉發量:#arc_toolbar_report下面的.share
2.使用Jsoup進行抓取
這裏發現,使用Jsoup取到的靜態頁面中沒有這些數據,而是JS數據渲染,要請求接口的
3.分析下問題所在,並解決
F12看下B站接口
這個接口裏有我們要的數據,它只需要一個aid,然後請求下接口就可以獲取到想要的值了,但是aid要從哪裏獲取呢?
Jsoup抓取的靜態頁面解析出aid即可!
aid在這裏,想盡一切方法,取出來就行,如何取出
分析了一下後,我決定用正則方式刪選出要的數據,在替換掉前後符號,在轉爲json,調出aid即可
開頭:window.INITIAL_STATE={
結尾:}};
就拿到了這一行
替換前:window.INITIAL_STATE={
替換後 {
替換前:}}
替換後 }
轉換爲json類型,就可以取出aid
然後使用請求一下接口既可以取到數據了