首页 文章

Robots.txt Crawl-Delay是否可以使用这种Anti-Scraping技术?

提问于
浏览
2

我想阻止网络抓取者在我的网站上积极地抓取1,000,000页 . 我'd like to do this by returning a 325627 HTTP error code to bots that access an abnormal number of pages per minute. I'没有使用表单垃圾邮件发送者,只有使用scraper .

我不希望搜索引擎蜘蛛收到错误 . 我倾向于设置robots.txt抓取延迟,这将确保蜘蛛在我的503阈值下每分钟访问多个页面 .

这是可接受的解决方案吗?所有主要搜索引擎都支持爬行延迟指令吗?它会对SEO产生负面影响吗?还有其他解决方案或建议吗?

1 回答

  • 3

    我已经制作了一些刮刀,而且花费时间最长的部分总是试图找出网站布局要刮什么而不是 . 我可以告诉你的是,改变div和内部布局对所有刮刀都是毁灭性的 . 就像ConfusedMind已经指出的那样 .

    所以这里有一个小文字给你:

    Rate limiting
    对IP进行速率限制意味着在阻止IP之前,您只允许IP在固定时间范围内进行一定数量的搜索 . 这似乎可以肯定地防止最严重的违规者,但实际上,当代理的不同用户使用您的网站时,该限制将很容易触发 . 仁慈的机器人也可能以高于正常的速度运行,从而触发你的极限 .

    一种解决方案当然是使用白名单,但问题在于您不断需要手动编译和维护这些列表,因为IP地址会随着时间的推移而变化 . 毋庸置疑,数据抓取工具只会在他们意识到您对某些地址进行速率限制后,只会降低其费率或将搜索分配到更多的IP上 .

    为了使速率限制有效并且对于网站的大用户而言并不过高,我们通常建议在阻止之前调查超过速率限制的每个人 .

    Captcha tests
    验证码测试是试图阻止网站抓取的常见方法 . 我们的想法是让一张图片显示一些机器上无法读取的文字和数字,但人类可以看到(见图片) . 这种方法有两个明显的缺点 . 首先,如果用户必须填写不止一个,验证码测试可能会令用户烦恼 . 其次,Web scraper可以轻松地手动执行测试,然后让脚本运行 . 除此之外,验证码测试的几个大用户已经将其实现受到了损害 . 混淆源代码

    一些解决方案试图模糊http源代码,使机器更难读取它 . 这种方法的问题在于,如果Web浏览器可以理解混淆代码,那么任何其他程序也可以 . 混淆源代码也可能会干扰搜索引擎查看和处理您的网站的方式 . 如果你决定实施这个,你应该非常小心 .

    Blacklists
    由知识分子组成的黑名单本身并不是一种方法,因为你仍然需要首先检测一个刮刀才能将其列入黑名单 . 即便如此,它仍然是一种钝器,因为IP:s往往会随着时间的推移而改变 . 最后,您将最终使用此方法阻止合法用户 . 如果你仍然决定实施黑名单,你应该有一个程序,至少每月审查一次 .

相关问题