有一个Ask机器人,它设置了此标头:

Mozilla/2.0 (compatible; Ask Jeeves/Teoma) 


考虑到这一点,我有以下问题:


如果我正在编写一个名为Goofy的网络爬虫,应该使用哪个用户代理?
如果放入Mozilla/2.0Mozilla/5.0有什么区别?

任何其他有关如何格式化用户代理以符合当前标准的建议都非常受欢迎。

#1 楼

我是一个相当大的Web爬网程序的主要设计者和作者(请参见metaslabs.com/mlbot(存档链接))。您要问的话题涉及一个对我们非常重要的主题-也许是运行搜寻器最重要的部分:礼貌。

第一:“ Mozilla”问题的原因是告诉网站您的浏览器功能是什么。如果您的机器人没有试图像浏览器一样运行,则没有特别的理由需要包含“ Mozilla”。

关于用户代理字符串和其他与礼貌相关的项目: />

选择一个您不知道其他人正在使用的名称。我怀疑如果您使用“ Goofybot”,将会很好。但我想确定一下。
您的用户代理字符串应包含指向该机器人更多信息的链接。例如,我们的字符串为“ MLBot(www.metadatalabs.com/mlbot)”。
请确保如果有人搜索“ Goofybot”,则该页面在搜索结果中居高(最好是第一)。 >关于机器人的页面上应说明您正在使用的信息,您从中爬网的IP地址,并包括人们可以与您联系的有关机器人问题的方法。
您应该回答任何问题或投诉迅速,采用“客户永远是对的”的理念。请记住,如果您的漫游器导致此人抱怨的问题,那么它很可能在其他许多人都没有抱怨的站点上引起了问题。他们或者没有看到问题,或者只是在您的IP地址上加了一个阻止字。
您应该内置该功能以防止您的机器人访问特定域名。有些人根本不希望您爬网,也没有访问权限或技术能力来创建robots.txt或.htaccess中的代码块。我们发现此功能使我们可以告诉某人:“对不起,MLBot造成了问题。我们指示它永远不要再次爬网您的网站。”也许不足为奇,这会使人们很快平静下来。
如果您还不尊重robots.txt,请执行此操作。没有什么比忽略robots.txt更快地给您带来坏名声了。

哇。那比我预期的持续了更长的时间。在过去的四年中,我犯了我上面提到的那些错误中的每一个,还有其他错误。但是,我们发现,如果我们对正在做的事情持开放态度并进行诚实的沟通(包括在投诉之前发布有关错误的信息),则大多数网站管理员都将我们视为良好的互联网公民。

评论


上面的示例链接(metadatalabs.com/mlbot)仅显示(“正在建设中”)...。

– starbeamrainbowlabs
17年9月12日在15:53

@starbeamrainbowlabs这个答案写在2010年。Metadata Labs在2012年关闭。

–吉姆·米歇尔(Jim Mischel)
18年5月13日在0:19

有没有其他选择呢?

– starbeamrainbowlabs
18年5月17日在11:43

@starbeamrainbowlabs替代什么?

–吉姆·米歇尔(Jim Mischel)
18年5月17日在21:27

显示到该“元数据实验室”页面上链接到的任何内容。如我所见,我无法建议其他方法:P

– starbeamrainbowlabs
18年5月19日在22:25

#2 楼

Mozilla / 2.0和Mozilla / 5.0都是对Mozilla浏览器的引用。它已经变得毫无意义,有许多搜寻器都在使用它,但是应该告诉网站对待您的搜寻器,就像任何随机用户使用常规浏览器进行浏览一样。

包含URL的礼节很不错。在下一节中,链接到有关您是谁以及您为何进行爬网的页面。 Ask Jeeves可以仅使用名称,但您应该包括URL。

例如,

Mozilla/5.0 (compatible; http://example.org/)


这将使网络管理员可以判断列出您为什么要爬网他们的网站,如果您的爬网程序的行为存在问题,还可以与您联系。

#3 楼

我认为以下链接可以提供帮助:


http://www.user-agents.org/
http://en.wikipedia.org/wiki/User_agent#格式
http://tools.ietf.org/html/rfc1945#section-10.15