如何在网络爬行期间保持网络礼貌(避免被禁止)?

时间:2010-12-20 08:36:47

标签: user-agent web-crawler robots.txt

  • 网站机器人抓取您的网站并使用bandwdith资源。

  • 机器人很多,用于多种用途,从自制,大学研究,刮板,新创业公司到已建立的搜索引擎(可能还有更多类别)

除了可能将流量发送到网站的大型搜索引擎外,为什么网站管理员还允许其他机器人立即知道? 网站管理员允许这些机器人的动机是什么?

第二个问题是:

如果在Internet上具有多个抓取节点的分布式爬网程序,则为每个代理使用不同的User-Agent字符串,因为如果它们都使用相同的UA,则大大减少了通过多个代理进行扩展的好处。 由于设置了高爬网延迟的大型网站,可能需要数周或数月才能完全抓取。

第3个问题: 因为robots.txt(唯一定义的爬网控制方法)是在域级别。 抓取工具是否应具有每个域或每个IP的礼貌政策(有时许多网站托管在同一IP上)。

如何解决此类网络恶意问题?还有其他相关的事情要记住吗?

1 个答案:

答案 0 :(得分:2)

  1. 除搜索引擎机器人外,还有许多有用的机器人,搜索引擎数量也在不断增加。在任何情况下,您要阻止的机器人可能使用了不正确的用户代理字符串并忽略了您的robots.txt文件,那么您将如何阻止它们?一旦检测到它们就可以在IP级阻止一些,但对其他人来说则很难。

  2. 用户代理字符串与抓取速度无关。数百万浏览器用户都使用相同的用户代理字符串。网站根据您的IP地址限制访问。如果你想更快地抓取他们的网站,你将需要更多的代理,但实际上,你不应该这样做 - 你的抓取工具应该礼貌,并且应该慢慢地抓取每个单独的网站,同时在许多其他网站上取得进展。

  3. 抓取工具应该是每个域的礼貌。单个IP可以服务于许多不同的服务器,但对于来回传递数据包的路由器来说,这并不是一件容易的事。每个服务器都可能会限制您维护多个连接的能力以及可以消耗的带宽。还有一个由多个网站提供服务的IP地址场景(例如循环DNS或更聪明的东西):有时像这样的网站上的带宽和连接限制将发生在路由器级别,所以再一次,每个域名礼貌。