这个问题在这里得到了答案。
因此,我的问题是可以采取哪些步骤来摆脱标准刮刀?
您问题中的关键词是“标准”爬虫。
没有办法阻止所有可能的机器人抓取您的网站,因为它们可能只是冒充普通访问者。
对于“好”机器人, robots.txt或META 标记之一或两者都指定机器人是否可以索引内容和/或跟踪链接:
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
对于“坏”的,你必须抓住它们一次,并结合 IP、请求/引荐标头等来阻止它们。
除了前面提到的robots.txt、机器人元标记和使用更多 javascript 之外,我所知道的最可靠的方法之一是将受限内容放在用户登录后面。这将限制除专用机器人之外的所有机器人。在用户登录名中添加一个强大的验证码(如reCAPTCHA),专门构建的机器人也将被阻止。
如果一个站点正在寻找验证客户的身份(即:包括它是否是机器人),这就是用户登录的目的。:)
如果检测到奇怪的活动,也可以禁用用户登录。
只需放置一个元标记,例如
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
这告诉机器人他可能不会索引您的网站。
如果您可以对请求进行服务器端处理,则可以分析用户代理字符串并在检测到刮板时返回 403。这不会是万无一失的。不道德的爬虫可能会使用标准的浏览器用户代理来欺骗您的代码。误报会将您的网站拒绝给真实用户。您最终可能会拒绝搜索引擎访问您的网页。
但是,如果您可以识别“标准刮板”,这将是另一种工具来控制对不尊重机器人标签的刮板的访问。