六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 47|回复: 0

抓取防爬虫的网站信息

[复制链接]

升级  22%

78

主题

78

主题

78

主题

举人

Rank: 3Rank: 3

积分
266
 楼主| 发表于 2013-1-29 11:37:57 | 显示全部楼层 |阅读模式
有的网站限制网络爬虫的抓取,例如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
 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表