java怎么用webcollector爬取js动态页面工程

JavaScript011

java怎么用webcollector爬取js动态页面工程,第1张

使用WebCollector来爬取百度搜索引擎按照关键字搜索的结果页面,解析规则可能会随百度搜索的改版而失效。

* 我们希望继续爬取每条搜索结果指向的网页,这里统称为外链。

* 我们希望在访问外链时仍然能够知道外链处于搜索引擎的第几页、第几条,

* 所以将页号和排序信息放入后续的CrawlDatum中,为了能够区分外链和

* 搜索引擎结果页面,我们将其pageType设置为outlink,这里的值完全由 用户定义,可以设置一个任意的值

* 在经典爬虫中,每个网页都有一个refer信息,表示当前网页的链接来源。

* 例如我们首先访问新浪首页,然后从新浪首页中解析出了新的新闻链接,

* 则这些网页的refer值都是新浪首页。WebCollector不直接保存refer值,

* 但我们可以通过下面的方式,将refer信息保存在metaData中,达到同样的效果。

* 经典爬虫中锚文本的存储也可以通过下面方式实现。

* 在一些需求中,希望得到当前页面在遍历树中的深度,利用metaData很容易实现

* 这个功能,在将CrawlDatum添加到next中时,将其depth设置为当前访问页面 的depth+1即可。

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

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

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

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

还有一个终极方法

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