我有一个问题。
我的网络爬虫从家和大学正确运行,即使我需要的页面在/pgol/中,robots.txt也这样说:
# File controlled by PUPPET: do not modify!!!
# /robots.txt file for http://www.paginegialle.it
User-Agent: bingbot
Crawl-delay: 30
User-Agent: msnbot
Crawl-delay: 30
User-agent: *
Disallow: /pgol/
Disallow: /pg/cgi/
Disallow: /pgolfe/
Disallow: /info/*.html
User-Agent: bingbot
Crawl-delay: 30
User-Agent: msnbot
Crawl-delay: 30
Sitemap: http://www.paginegialle.it/sitemap.xml
Sitemap: http://www.paginegialle.it/sitemap_fe.xml
但是当我从work运行它时,网站立即认出我是机器人并发送给我这个页面:
<!DOCTYPE html>
<head>
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="refresh" content="10; url=/distil_r_captcha.html?Ref=/pgol/4-Benzinaio/3-Roma/p=1?mr=50&distil_RID=06AFED2E-B651-11E3-8450-306F5DBA1712" />
<script type="text/javascript" src="/ga.137584219024.js?PID=6D4E4D1D-7094-375D-A439-0568A6A70836" defer></script><style type="text/css">#d__fFH{position:absolute;top:-5000px;left:-5000px}#d__fF{font-family:serif;font-size:200px;visibility:hidden}#centersf323034b,#Freddy231a90d5,#category58c315d5,#Freddy231a90d5{display:none!important}</style></head>
<body>
<div id="distil_ident_block"> </div>
<div id="d__fFH"><OBJECT id="d_dlg" CLASSID="clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b" width="0px" height="0px"></OBJECT><span id="d__fF"></span></div></body>
</html>
我认为这是由于我的一个同事发出了很多错误的请求,服务器将我们的IP注册为一个错误的机器人。
我不知道服务器的有效功能是什么,所以我刚才说的可能是错的。
我使用Java,特别是crawler4j from Google Code
你能向我解释一下情况并提出解决方案吗?
robots.txt
就像停止和禁止通行的标志。如果你想绕过他们,你可以。这就是为什么更严格的方法(如滥用IP过滤)经常对那些不遵守robots.txt
的人实施。
无论你的"善意"如何,你都应该首先尊重robots.txt
。