String url="http://news.cnblogs.com/";
String refer="http://www.cnblogs.com/";
URL link=new URL(url);
WebClient wc=new WebClient();
WebRequest request=new WebRequest(link);
request.setCharset("UTF-8");
request.setProxyHost("120.120.120.x");
request.setProxyPort(8080);
request.setAdditionalHeader("Referer", refer);
request.setAdditionalHeader("User-Agent", "Mozilla/5.0 (Windows NT 5.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2");
wc.getCookieManager().setCookiesEnabled(true);
wc.getOptions().setJavaScriptEnabled(true);
wc.getOptions().setCssEnabled(true);
wc.getOptions().setThrowExceptionOnFailingStatusCode(false);
wc.getOptions().setThrowExceptionOnScriptError(false);
wc.getOptions().setTimeout(10000);
Set<Cookie> cookies=null;
Iterator<Cookie> i = cookies.iterator();
while (i.hasNext())
wc.getCookieManager().addCookie(i.next());
HtmlPage page=null;
page = wc.getPage(request);
if(page==null)
System.out.println("采集 "+url+" 失败!!!");
return ;
String content=page.asText();
if(content==null)
System.out.println("采集 "+url+" 失败!!!");
return ;
CookieManager CM = wc.getCookieManager();
Set<Cookie> cookies_ret = CM.getCookies();
String url="http://news.cnblogs.com/";//想采集的网址 String refer="http://www.cnblogs.com/"; URL link=new URL(url); WebClient wc=new WebClient(); WebRequest request=new WebRequest(link); request.set
//
设置
代理
服务器地址
proxy.setHttpProxy("
代理
服务器地址:端口号");
DesiredCapabilities capabilities = DesiredCapabilities.
htmlUnit
();
capabilities.setCapabil
如果你没有采用maven或者gradle构建的项目去
使用
htmlunit
,如果只是采用传统的java项目
使用
htmlunit
的话,那么只导入
htmlunit
的主jar包,你将会遇到无数个Exception,别问我为什么知道,这里还是推荐
使用
maven或者gradle去构建
htmlunit
的项目,因为它实在依赖了很多的jar包,纯靠手动导入是不行的,不信你试试!
htmlunit
依赖的jar包如下:
内容转至http://blog.java1234.com/blog/articles/282.html
有时候频繁的爬取第三方站点内容,会被站点的防火墙拦截,
IP
拉黑,所以这时候,就要用到
代理
IP
,拉黑一个就换一个;
htmlunit
实用
代理
的方式比较简单,WebClient重载构造方法就有提供,我们看下演示代码:
package com.hbk.
htmlunit
;
import java...
import com.gargoylesoftware.
htmlunit
.BrowserVersion;
import com.gargoylesoftware.
htmlunit
.WebClient;
import com.gargoylesoftware.
htmlunit
.html