HttpURLConnection conn = (HttpURLConnection) newURL(path).openConnection();
conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible;MSIE 7.0; Windows NT 5.1; Maxthon;)");
conn.setRequestProperty("Accept-Encoding", "gzip");
conn.setRequestProperty("referer","http://control.blog.sina.com.cn/selienceblog");
conn.setRequestProperty("cookie","http://control.blog.sina.com.cn");
InputStream inputStream = conn.getInputStream();
//保存inputstream中的东西就OK了
其实原理非常简单就是设置下请求头,通过设置user-agent让服务器识别我们的身份,上面的例子中,我们就告诉浏览器我是用的maxthon遨游浏览器.通过设置useragent大部分的防采集的网站可以通过了,第二中比较严格的防采集的网站是通过请求头的referer和cookie来判断的.
使用jetty的HttpClient的可以通过ContentExchange的addRequestHeader来设置请求头
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1;Maxthon;)");
contentExchange.addRequestHeader("Accept-Encoding", "gzip");
contentExchange.addRequestHeader("referer","http://control.blog.sina.com.cn/selienceblog");
contentExchange.addRequestHeader("cookie", "data");
contentExchange.setMethod("GET");
转载自:http://blog.sina.com.cn/s/blog_5f8d04170100o5q8.html