【问题标题】:How to disallow bots that don't obey robots.txt?如何禁止不遵守 robots.txt 的机器人?
【发布时间】:2014-10-18 19:11:37
【问题描述】:

我最近更改了我的 robots.txt 以禁止机器人进行昂贵的搜索 API 查询。除了 /q?... 这是一个搜索 API 查询并且价格昂贵之外,它们现在允许所有其他页面。

User-agent: *
Disallow: /q?

Sitemap: /sitemap.xml.gz

现在我的日志中仍有机器人。它是谷歌还是只是“googlebot 兼容”?如何从 /q 完全禁止机器人?

2014-10-18 21:04:23.474 /q?query=category%3D5030%20and%20cityID%3D4698187&o=4 200 261ms 7kb Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) module=default version=disallow
66.249.79.28 - - [18/Oct/2014:12:04:23 -0700] "GET /q?query=category%3D5030%20and%20cityID%3D4698187&o=4 HTTP/1.1" 200 8005 - "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"  ms=261 cpu_ms=108 cpm_usd=0.050895 app_engine_release=1.9.13 instance=00c61b117cdfd20321977d865dd08cef54e2fa

我可以根据我的请求处理程序或我的dos.yaml如果 robots.txt 中的 http 标头将特定机器人列入黑名单吗?当我运行它来查找匹配项时,过去 2 小时有 50 个匹配项:

path:/q.* useragent:.*Googlebot.*

日志行看起来像这样,看起来像 googlebot:

2014-10-19 00:37:34.449 /q?query=category%3D1030%20and%20cityID%3D4752198&o=18 200 138ms 7kb Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) module=default version=disallow 66.249.79.102 - - [18/Oct/2014:15:37:34 -0700] "GET /q?query=category%3D1030%20and%20cityID%3D4752198&o=18 HTTP/1.1" 200 7965 - "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" "www.classifiedsmarket.appspot.com" ms=138 cpu_ms=64 cpm_usd=0.050890 app_engine_release=1.9.13 instance=00c61b117c781458f46764c359368330c7d7fdc4

【问题讨论】:

  • 旁注:您应该提供full URL to the sitemap
  • 您最近才添加此Disallow 行吗?和/或您之前是否专门针对 Googlebot?
  • 是的,我发现我的大部分应用程序成本来自使用来自/q?... 的搜索 API,并且 googlebot 正在执行搜索。如果我与之前相比,请求似乎显着减少(自此更改以来应用程序成本显着下降),但它并没有完全消失。 Googlebot 最近请求了新的/robots.txt。直到最近,我才将 Disallow 更改为允许。我想知道其他程序是否可以模拟 googlebot 并发送相同的 http 标头并忽略 robots.txt 进行查询并将它们伪装成 googlebot 或兼容的。

标签: google-app-engine python-2.7 jinja2 robots.txt webapp2


【解决方案1】:

是的,每个访问者/机器人都可以声称自己是 Googlebot/2.1(通过更改 User-Agent header)。

您可以通过反向 DNS 查找 verify that it was the real Googlebot

根据您日志中的 IP,它似乎是真正的机器人。你的 robots.txt 也是正确的。因此,Google 识别新规则应该只是时间问题,之后所有请求都应该停止。

不尊重您的 robots.txt 的机器人当然可以被阻止访问资源,但是(取决于您识别机器人的标准)这也有阻止人类访问者的风险。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    • 2012-07-13
    • 1970-01-01
    • 2013-09-23
    • 2014-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多