【问题标题】:Ban robots from website [closed]禁止网站上的机器人[关闭]
【发布时间】:2014-07-01 03:55:55
【问题描述】:

我的网站经常出现故障,因为蜘蛛正在访问许多资源。这是楼主告诉我的。他们告诉我禁止这些 IP 地址: 46.229.164.98 46.229.164.100 46.229.164.101

但我不知道该怎么做。

我用谷歌搜索了一下,现在我已经将这些行添加到根目录中的 .htaccess 中:

# allow all except those indicated here
<Files *>
order allow,deny
allow from all
deny from 46.229.164.98
deny from 46.229.164.100
deny from 46.229.164.101
</Files>

这是 100% 正确的吗?我能做什么? 请帮我。我真的不知道我应该做什么。

【问题讨论】:

  • 看起来像一个 .htaccess 文件而不是 robots.txt ,你应该与“主机”交谈并询问精度。
  • 是的,我做错了,现在我已经从 robots.txt 中删除了这些行并将它们写入 .htaccess。他们只是告诉我这些蜘蛛使用了太多资源,我应该禁止他们的地址:/
  • 那么您发布的内容是否存在特定问题?
  • @PatrickQ 不,我在 1 小时前遇到了问题,现在我的主机关闭了网站,正在等待我找到解决方案...

标签: bots robots.txt web-crawler


【解决方案1】:

基于这些

https://www.projecthoneypot.org/ip_46.229.164.98 https://www.projecthoneypot.org/ip_46.229.164.100 https://www.projecthoneypot.org/ip_46.229.164.101

看起来这个机器人是http://www.semrush.com/bot.html

如果那真的是机器人,他们会在他们的页面上说

To remove our bot from crawling your site simply insert the following lines to your
"robots.txt" file:

User-agent: SemrushBot
Disallow: /

当然,这并不能保证机器人会遵守规则。您可以通过多种方式阻止他。 .htaccess 就是其中之一。就像你做的那样。

你也可以做这个小技巧,拒绝任何在用户代理字符串中包含“SemrushBot”的 IP 地址

Options +FollowSymlinks  
RewriteEngine On  
RewriteBase /  
SetEnvIfNoCase User-Agent "^SemrushBot" bad_user
SetEnvIfNoCase User-Agent "^WhateverElseBadUserAgentHere" bad_user
Deny from env=bad_user

这种方式将阻止机器人可能使用的其他 IP。

查看更多关于用户代理字符串阻塞的信息:https://stackoverflow.com/a/7372572/953684

我应该补充一点,如果您的网站被蜘蛛关闭,通常这意味着您的脚本编写错误或服务器非常薄弱。

编辑:

这一行

SetEnvIfNoCase User-Agent "^SemrushBot" bad_user

如果用户代理字符串SemrushBot(插入符号^ 表示“以”开头),则尝试匹配。如果您想在 User-Agent 字符串中搜索 SemrushBot ANYWHERE,只需删除插入符号,即可:

SetEnvIfNoCase User-Agent "SemrushBot" bad_user

上面的意思是如果用户代理在任何地方都包含字符串SemrushBot(是的,不需要.*)。

【讨论】:

  • 我正在使用 vBulletin,现在流量是我最近几个月的最高流量的 1/3。当流量为 100% 时,网站还可以:/
  • @daimpa 请务必检查您的日志。如果一只蜘蛛来了,我可以保证还会来更多。这就像让广告公司知道您的电话号码一样。一旦他们发现你,他们就会永远用不同的名字称呼你。
  • @Sharky:你用插入符号'^'开始表达式这是否意味着它仅在字符串位于用户代理的开头时才匹配? (我想知道这些未开化的_____改变他们的用户代理需要多长时间。)
  • @WGroleau 确切地说,插入符号表示字符串的开头。根据我的经验,他们不会更改其用户代理字符串。如果有人想避免被阻止,通常将其用户代理更改为 googlebot 或其他东西。无论如何,请继续查看您的日志并建立一个不良用户代理列表,这些用户代理会抓取您的网站并阻止它们。但请务必在 robots.txt 只要适用上添加Disallow(这样他们就会停止抓取您 - 因为您不能仅仅依靠从您的端进行阻止,因为即使阻止它也会消耗资源)并希望最好的......那些_______!!!
【解决方案2】:

你做对了,但是

您必须在 .htaccess 文件中编写该代码,而不是在 Robots.txt 文件中。

为了拒绝任何搜索引擎抓取您的网站,代码应如下所示

用户代理:谷歌
禁止:/ 

这将禁止 Google 抓取您的网站。

顺便说一下,我更喜欢 .htaccess 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 2011-10-22
    • 2023-04-03
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 2020-10-16
    相关资源
    最近更新 更多