如何让让爬虫解析爬取的url的js

JavaScript06

如何让让爬虫解析爬取的url的js,第1张

什么叫url的js?你是指对js代码实现的异步数据抓包是吧?一般有两种做法,一是直接找到需要的异步数据的结构化封包url地址。就是手动抓包。另一种叫模拟浏览器js渲染,就是调用谷歌浏览器内核实现js渲染。

我用Jsoup写爬虫,一般遇到html返回没有的内容。但是浏览器显示有的内容。都是分析页面的http请求日志。分析页面JS代码来解决。

1、有些页面元素被隐藏起来了->换selector解决

2、有些数据保存在js/json对象中->截取对应的串,分析解决

3、通过api接口调用->伪造请求获得数据

还有一个终极方法

4、使用phantomjs或者casperjs这种headless浏览器

不是爬不到

是因为用js生成的网页,是通过浏览器加载js代码之后,由js动态生成的。

用爬虫直接去抓网页的话,抓下来的是原始代码,浏览器还未解析过的内容。

纯 html 的话,抓下来可以直接拿来用,但是如果是由 js 动态生成的网页的话,就没办法直接用了。

像通过js动态加载的网页,理论上如果能用开源的浏览器内核将网页解析出来的话,通过浏览器内核提供的接口,完全可以把网页最终的 html 拿出来