gpt4 book ai didi

web-crawler - 检测 'stealth'网络爬虫

转载 作者:行者123 更新时间:2023-12-03 04:44:00 24 4
gpt4 key购买 nike

有哪些选项可以检测不想被检测到的网络爬虫?

(我知道列出检测技术将使智能隐形爬虫程序员能够制作出更好的蜘蛛,但我不认为我们无论如何都能够阻止智能隐形爬虫,只能阻止那些犯错误的人。 )

我说的不是 Googlebot 和 Yahoo! 等优秀的抓取工具。啜饮。我认为机器人很好,如果:

  1. 在用户代理字符串中将自己标识为机器人
  2. 读取robots.txt(并遵守它)

我说的是爬虫,它们隐藏在普通用户代理后面,使用我的带宽并且从不给我任何返回。

有一些活板门可以构建更新列表(感谢 Chris,gs):

  1. 添加仅在 robots.txt 中列出(标记为禁止)的目录,
  2. 添加不可见链接(可能标记为 rel="nofollow"?),
    • style=“显示:无;”在链接或父容器上
    • 放置在另一个具有较高 z-index 的元素下方
  3. 检测谁不理解 CapPiTaLiSaTioN,
  4. 检测谁试图发布回复但总是无法通过验证码。
  5. 检测对仅 POST 资源的 GET 请求
  6. 检测请求之间的间隔
  7. 检测请求页面的顺序
  8. 检测谁(始终)通过 HTTP 请求 HTTPS 资源
  9. 检测谁不请求图像文件(这与已知支持图像的浏览器的用户代理列表相结合,效果出奇地好)

一些陷阱会由“好”机器人和“坏”机器人触发。您可以将它们与白名单结合起来:

  1. 它会触发陷阱
  2. 它请求 robots.txt
  3. 它不会触发另一个陷阱,因为它遵循 robots.txt

这里的另一件重要事情是:请考虑盲人使用屏幕阅读器:为人们提供联系您的方式,或解决(非图像)验证码以继续浏览。

有什么方法可以自动检测试图伪装成普通人类访问者的网络爬虫。

问题不是:如何捕获每个爬网程序。问题是:如何最大限度地提高检测到爬网程序的机会。

有些蜘蛛真的很好,实际上可以解析和理解 HTML、xhtml、CSS、JavaScript、VBScript 等...我不抱任何幻想:我无法击败他们。

但是,您可能会惊讶于某些爬虫程序是多么愚蠢。愚蠢的最好例子(在我看来)是:在请求之前将所有 URL 转换为小写。

还有一大堆爬虫“不够好”,无法避开各种活板门。

最佳答案

不久前,我与一家小型托管公司合作,帮助他们实现解决方案。我开发的系统会检查 Web 服务器日志是否存在来自任何给定 IP 地址的过度事件,并发布防火墙规则来阻止违规者。它包括基于 http://www.iplists.com/ 的 IP 地址/范围白名单。然后根据需要通过检查声称的用户代理字符串自动更新,如果客户端声称是合法蜘蛛但不在白名单上,它会执行 DNS/反向 DNS 查找以验证源 IP 地址是否对应于声称是该机器人的所有者。作为故障保护措施,这些操作将通过电子邮件报告给管理员,并附上将地址列入黑/白名单的链接,以防评估不正确。

我已经有 6 个月左右的时间没有与该客户交谈过,但是,最后我听说,系统运行得非常有效。

旁白:如果您正在考虑建立一个基于命中率限制的类似检测系统,请务必使用至少一分钟(最好至少五分钟)的总计。我看到很多人都在谈论这类方案,他们想要阻止任何在一秒钟内点击量达到 5-10 次的人,这可能会在图像较多的页面上产生误报(除非图像被排除在计数之外)并且 当像我这样的人发现一个他想要阅读全部内容的有趣网站时,会产生误报,因此他会在阅读第一个网站时打开选项卡中的所有链接以在后台加载。

关于web-crawler - 检测 'stealth'网络爬虫,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/233192/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com