任何常规浏览器中的用户代理都包含“机器人”或“抓取”吗?


11

任何常规浏览器中的用户代理都包含“机器人”或“抓取”吗?

我在我的网站上检查了用户代理,以查看它是否来自机器人。如果是这样,我可以做一些小的优化,因为它们没有登录。(我完全不更改内容)

在为30-40个以上的漫游器添加检查之后,我已经厌倦了添加它们。所以我想知道是否检查它是否仅包含“ bot”或“ crawl”。我知道不会得到所有的机器人,但是会得到很多。但是,如果这可能导致任何误报,则将完全破坏添加到购物车,下订单和登录的功能。

Answers:


13

根据位于http://www.useragentstring.com/pages/useragentstring.php?typ=Browser的列表,其中包含来自各种浏览器的9000多个用户代理字符串:

  • 浏览器的0个用户代理字符串包含单词“ bot”
  • 浏览器的2个用户代理字符串包含单词“ crawl”
  • 浏览器的0个用户代理字符串包含单词“ spider”

(包含“抓取”的2如下:“ Mozilla / 4.0(兼容; MSIE 5.01; Windows NT 5.0; YComp 5.0.2.6; MSIECrawler)”和“ Mozilla / 4.0(兼容; MSIE 5.01; Windows NT 5.0; MSIECrawler) )”我认为不考虑这些是安全的。)

根据http://www.useragentstring.com/pages/useragentstring.php?typ=Crawler的列表,其中有442个用户代理字符串被列为bot:

  • bot的208个用户代理字符串包含单词“ bot”
  • 机器人的63个用户代理字符串中包含“抓取”一词
  • 机器人的37个用户代理字符串中包含“蜘蛛”一词
  • 282个bot的用户代理字符串包含“ bot”,“ crawl”或“ spider”

我的结论是:通过用户代理字符串(包括“ bot”,“ crawl”和“ spider”)过滤bot是安全的。它不是防弹的,但绝对总比没有好。

注意:在搜索关键字时,我使用了不区分大小写的搜索。


非常感谢您的回答。我已经做了检查的今天,仍然没有浏览器移动浏览器的用户代理字符串包含任何的botcrawlspider,甚至search
奥利弗(Oliver)

2

IMO的一个更好的解决方案是检测用户是否登录。如果没有登录,则显示标准页面(可以将其缓存)。任何网络蜘蛛都永远不会登录,但是如果您正在针对它们进行优化,那为什么不为您站点的新用户呢?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.