利用htmlunit和jsoup来实现爬取js的动态网页

这两天在做一个有关于网络爬虫的系统

但是呢,一开始爬的时候就发现问题,js的动态页面的爬不下来

网上找了好多方法,google也问了,主要还是提到htmlunit,于是就用了,

在pairsfish的csdn博客上,我找到了方法:

/**HtmlUnit请求web页面*/ WebClient webClient = new WebClient(); 
 webClient.getOptions().setJavaScriptEnabled(true); //启用JS解释器,默认为true  
webClient.getOptions().setCssEnabled(false); //禁用css支持 webClient.getOptions().setThrowExceptionOnScriptError(false); //js运行错误时,是否抛出异常 webClient.getOptions().setTimeout(20000); HtmlPage page = wc.getPage("http://www.hao123.com");  
 //我认为这个最重要
 String pageXml = page.asXml(); //以xml的形式获取响应文本 
  
        /**jsoup解析文档*/ Document doc = Jsoup.parse(pageXml, "http://cq.qq.com"); 
这个时候,就可以得到jsoup中的document对象了,接下来就好写了,就像爬普通静态网页一样了。
不过,webclient解析是还是会出现一些问题,js的问题,主要是由于目标url的js写的有些问题,但在实际的浏览器中却会忽略,eclipse中会报异常。


你可能感兴趣的:(JavaScript,java,eclipse,javaweb,网络爬虫)