抓取防爬虫的网站信息

有的网站限制网络爬虫的抓取,例如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"); 

 这样就可以了。

转:http://gbfd2012.iteye.com/blog/732227

猜你喜欢

转载自liuxinglanyue.iteye.com/blog/833472
今日推荐