相关疑难解决方法(0)

检测"隐形"网络爬虫

有哪些选项可以检测不希望被检测到的网页抓取工具?

(我知道列表检测技术将允许智能隐形爬虫程序员制作出更好的蜘蛛,但我认为无论如何我们都无法阻止智能隐形爬行器,只会犯错误.)

我不是在谈论像googlebot和Yahoo!这样的好爬虫.啜食.我认为机器人很好,如果它:

  1. 将自己标识为用户代理字符串中的bot
  2. 读robots.txt(并服从它)

我正在谈论坏的爬虫,躲在普通用户代理后面,使用我的带宽,从不给我任何回报.

有一些陷阱可以构建更新列表(谢谢Chris,gs):

  1. 添加仅在robots.txt中列出(标记为禁止)的目录,
  2. 添加不可见的链接(可能标记为rel ="nofollow"?),
    • style ="display:none;" 在链接或父容器上
    • 放在另一个具有更高z-index的元素下面
  3. 检测谁不懂大写,
  4. 检测谁试图发布回复但总是失败的验证码.
  5. 检测对仅POST资源的GET请求
  6. 检测请求之间的间隔
  7. 检测请求的页面顺序
  8. 检测谁(一致地)通过http请求https资源
  9. 检测谁没有请求图像文件(这与已知图像功能的浏览器的用户代理列表组合工作惊人的好)

一些陷阱将由"好"和"坏"机器人触发.你可以把它们与白名单结合起来:

  1. 它触发陷阱
  2. 它要求robots.txt
  3. 它不会触发另一个陷阱因为它服从了 robots.txt

另一个重要的事情是:
请考虑盲人使用屏幕阅读器:给人们一种联系方式,或解决(非图像)Captcha继续浏览.

有哪些方法可以自动检测试图将自己屏蔽为正常人类访问者的网络爬虫.

更新
问题不是:我如何捕获每个爬虫.问题是:如何最大限度地发现爬虫的机会.

有些蜘蛛真的很好,实际上解析和理解html,xhtml,css javascript,VB脚本等......
我没有幻想:我无法击败它们.

然而,你会惊讶于一些爬虫是多么愚蠢.愚蠢的最好例子(在我看来)是:在请求之前将所有URL强制转换为小写.

然后有一大堆爬虫只是"不够好",以避免各种陷门.

web-crawler

107
推荐指数
4
解决办法
2万
查看次数

标签 统计

web-crawler ×1