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
本文介绍了如何利用Java中的HttpURLConnection类获取网站的HTML内容,并通过设置referer和cookie等请求头参数来绕过部分网站的防采集策略。详细解释了请求头设置的原理和常见防采集网站的应对方法。
865

被折叠的 条评论
为什么被折叠?



