有的网站限制网络爬虫的抓取,例如javaeye。会出现错误提示:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" dir="ltr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta name="keyword" content="JavaEye,IT,开发,交流,社区,java, ruby, ajax, agile" /> <title>您的访问请求被拒绝 - JavaEye技术社区</title> <style type="text/css"> .clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } .clearfix { display:block; } .left { float: left; } h1 {font-size: 20px;color: #6293BB;} p {font-size: 14px;color: #6293BB;} </style> </head> <body> <div style="padding:50px 0 0 300px"> <h1>您的访问请求被拒绝</h1> </div> <div class="clearfix"> <div class="left" style="padding-left:120px"> <img src="/images/filenotfound.jpg" width="128" height="128" /> </div> <div class="left" style="width:700px;padding:30px 0 0 30px"> <p>您可能使用了网络爬虫抓取JavaEye网站页面!</p> <p>JavaEye网站不允许您使用网络爬虫对JavaEye进行恶意的网页抓取,请您立刻停止该抓取行为!</p> <p>如果您的网络爬虫不属于恶意抓取行为,希望JavaEye网站允许你进行网页抓取,请和JavaEye管理员联系,取得授权: webmaster<img src='/images/email.gif' alt="Email" />support.iteye.com</p> <p>如果您确实使用浏览器访问,但是被错误的识别为网络爬虫,请将您浏览器发送的“User Agent”信息告知我们,帮助我们解决错误: webmaster<img src='/images/email.gif' alt="Email" />support.iteye.com</p> </div> </div> <div style="padding:20px 0 0 500px"> <a href="http://www.iteye.com"><img src='/images/logo_small.gif' border='0'></a> </div> </body> </html>
不过可以设置下链接的参数。
URL url=new URL(pathString);
URLConnection con=url.openConnection();
con.setDoOutput(true);
con.setRequestProperty("User-Agent", "");
加上上面红色的一句,就可以了。
或者使用httpclient是,添加
HttpClient httpClient=new HttpClient(); httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(50000); httpClient.getParams().setParameter(HttpMethodParams.USER_AGENT,"Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.1.2) Gecko/20090803 Fedora/3.5");
这样就可以了。