源码链接: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
然后使用请求一下接口既可以取到数据了