题
我只是开始考虑建立/定制网履今天,知道很少关于网履/机器人礼仪。大多数着作礼节我发现似乎旧和尴尬,所以我想得到一些目前(实用)见解自的网页开发人员社区。
我想用一个履带走过"网络",用于一个超级简单的目标-"没有标记的站点XYZ满足的条件ABC?".
这就提出了很多问题要问我,但我认为两个主要问题,我需要摆脱的方式首先是:
- 这感觉一点"前途未卜"从获得去-是这样的事情可以接受的吗?
- 什么具体考虑因素应该履采取不生气的人吗?
解决方案
服从robots.txt (而不是过于激进,如已经说).
你可能会想对你的用户代理string-他们是一个很好的地方以前你在做什么和如何你可以联系。
其他提示
除了WillDean和Einar是很好的答案,我真的会让你花时间阅读有关的意义HTTP响应的代码,什么你履应该做时遇到的每一个,因为它将使一个很大的一个差别在你的性能,并在是否或不你是禁止从一些网站。
一些有用的链接:
请一定要包括一个网址,在你的用户代理串,解释了谁/什么为什么你的机器人是爬行。
也不要忘记服从bot元标签: http://www.w3.org/TR/html4/appendix/notes.html#h-B.4.1.2
另一件事要想想-当蜘蛛网页,不要太匆忙的决定的事情是不存在的或有错误。一些网页是离线,由于维修工作或错误的更正在一个短时期。
我说,这是非常重要的是考虑如何更负荷你是引起。例如,如果履带式请求每一个目的一个单一的网站,或多或少在一次,它可能会导致负荷问题,特别网站。
换句话说,确保履不太积极。
这是完全带淋浴设施要做的只是确保它仅访问的每一页的每一次会议。因为你在技术上创建一个searchbot你必须服从robots.txt 和 no-cache
规则。人们仍然可以阻止你的机器人,特别是如果需要通过阻止IPs。
你只是在寻找源码我可以告诉所以你会想要建立一些东西跟着 <link>
s供的样式表和 <script src="..."></script>
为Javascript.
载荷是一个很大的审议。把限制于你如何经常爬一个特定网站,什么是最基本的信息需要完成自己的目标。如果你是在寻找的文本做不下载所有的图像,这样的东西。
当然服从robots.txt 但是,还确保用户代理串包括准确的联系信息和可能一个链接到一个网页描述了你在做什么和怎么您做它。如果一个网络管理员是看到一个很大的请求从你是好奇,你也许能够回答了很多问题与一个资料性网页。
你需要添加一些能力列入黑名单的网站/域或其他的东西(IP范围,ASN,等等),以避免你的蜘蛛越来越陷入了垃圾邮件网站。
你会需要有一个HTTP实现有很大的控制超时和行为。期待了很多站点发送回无效的反应,巨大的反应、垃圾头,或者只是离开的连接打开无限期有没有响应等等。
也不信任的一个200状态的意思是"网页存在"。相当大比例的地点送回200于"未找到"或其他错误,在我的经验(以及大量HTML文档)。