java爬虫怎么抓取js动态生成的内容

JavaScript018

java爬虫怎么抓取js动态生成的内容,第1张

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

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

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

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

还有一个终极方法

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

通过使用window.location.search可以获取到当前URL的?号开始的字符串,如前面的链接获取到的search为?id=001,再对获取的字符串进行处理,就可以获取到参数的值了,参考代码如下:

<SPAN style="FONT-SIZE: 14px">function getUrlParam(name) {

var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)")

var r = window.location.search.substr(1).match(reg)

if (r != null)

return unescape(r[2])

return null

}

</SPAN>

在调用上面的方法的时候,只要传入参数的名称,就可以获取到想要的参数的值了,如:getUrlParam("id")。

1、WebView 在没发出一个请求前,会调用如下方法,

可以尝试在这里处理。

-[NSURLCache cachedResponseForRequest:]

2、再就是看看能否使用 NSURLProtocol 拦截。