当前位置: 首页 > 面试题库 >

如何识别网络爬虫?

顾炎彬
2023-03-14
问题内容

如何过滤来自网络抓取工具等的点击。不是人类的点击。

我使用maxmind.com从IP请求城市。.如果我必须支付所有点击数(包括网络抓取工具,机器人等)的话,这并不便宜。


问题答案:

有两种检测机器人的一般方法,我将它们称为“礼貌/被动”和“激进”。基本上,您必须使您的网站出现心理障碍。

有礼貌

这些是礼貌地告诉抓取工具他们不应该抓取您的网站并限制抓取频率的方法。可以通过robots.txt文件确保礼貌,在该文件中,您可以指定应允许哪些bot爬网您的网站以及您可以多久爬网一次。这假设您要处理的机器人礼貌。

好斗的

使机器人远离您的站点的另一种方法是变得主动。

用户代理

一些攻击性行为包括(如其他用户所提到的)用户代理字符串的过滤。这可能是检测它是否是用户的最简单但也不可靠的方法。许多机器人倾向于欺骗用户代理,而某些机器人是出于正当理由(即,他们只想抓取移动内容),而其他机器人则根本不希望被识别为机器人。更糟糕的是,某些漫游器会欺骗合法/礼貌的漫游器代理,例如google,microsoft,lycos和其他爬网程序的用户代理,这些代理通常被认为是礼貌的。依靠用户代理可能会有所帮助,但不能单靠本身。

有更积极的方式来处理欺骗用户代理并且不遵守您的robots.txt文件的机器人:

机器人陷阱

我喜欢将其视为“维纳斯飞行陷阱”,它基本上可以惩罚任何想和您玩花样的机器人。

漫游器陷阱可能是查找不遵守robots.txt文件的漫游器的最有效方法,而不会真正损害网站的可用性。创建漫游器陷阱可确保仅捕获漫游器,而不捕获真实用户。这样做的基本方法是在robots.txt文件中设置一个专门标记为禁止访问的目录,这样,任何礼貌的机械手都不会掉入陷阱。您要做的第二件事是从您的网站到bot陷阱目录放置一个“隐藏”链接(这确保了真实用户永远不会去那里,因为真实用户永远不会单击不可见链接)。最后,您禁止进入bot
trap目录的任何IP地址。

以下是一些有关如何实现此目的的说明: 创建一个bot陷阱(或您的情况:PHP bot trap)。

注意:当然,某些漫游器足够聪明,可以读取robots.txt文件,查看已标记为“超出限制”的所有目录,并且仍会忽略您的礼貌设置(例如爬网率和允许的漫游器)。尽管这些机器人不礼貌,但它们可能不会落入您的机器人陷阱。

暴力

我认为这实际上对于一般观众(和一般用途)来说太激进了,因此,如果有18岁以下的孩子,请带他们到另一个房间!

您只需不指定robots.txt文件,即可使bot陷阱“ 暴力 ”。在这种情况下, 任何 搜寻隐藏链接的 BOT
都可能会进入机器人陷阱,并且可以禁止所有机器人!

不建议这样做的原因是,您实际上可能希望某些机器人对您的网站进行爬网(例如Google,Microsoft或其他用于站点索引的机器人)。允许来自Google,Microsoft,Lycos等的漫游器礼貌地爬网您的网站,可以确保您的网站被编入索引,并且当人们在自己喜欢的搜索引擎上搜索该网站时,该网站就会显示出来。

自我破坏

限制机器人可以在您的网站上进行爬网的另一种方法是服务于验证码或机器人无法解决的其他挑战。这是以牺牲您的用户为代价的,我认为任何使您的网站无法使用的东西(例如CAPTCHA)都是“自毁性的”。当然,这实际上不会阻止bot反复尝试爬网您的网站,只会使您的网站对他们非常无趣。有一些方法可以“绕过”验证码,但是它们很难实现,因此我不会对此进行过多研究。

结论

为了您的目的,与机器人打交道的最佳方法可能是采用上述策略的组合:

  1. 过滤用户代理。
  2. 设置一个僵尸陷阱(暴力陷阱)。

捕获进入暴力僵尸陷阱的所有僵尸,并将其IP列入黑名单(但不要阻止它们)。这样,您仍然可以获得被僵尸程序爬网的“好处”,但是由于进入了僵尸程序陷阱,您将不必付费检查列入黑名单的IP地址。



 类似资料:
  • 主要内容:认识爬虫,爬虫分类,爬虫应用,爬虫是一把双刃剑,为什么用Python做爬虫,编写爬虫的流程网络爬虫又称网络蜘蛛、网络机器人,它是一种按照一定的规则自动浏览、检索网页信息的程序或者脚本。网络爬虫能够自动请求网页,并将所需要的数据抓取下来。通过对抓取的数据进行处理,从而提取出有价值的信息。 认识爬虫 我们所熟悉的一系列搜索引擎都是大型的网络爬虫,比如百度、搜狗、360浏览器、谷歌搜索等等。每个搜索引擎都拥有自己的爬虫程序,比如 360 浏览器的爬虫称作 360Spider,搜狗的爬虫叫做

  • 案例:爬取百度新闻首页的新闻标题信息 url地址:http://news.baidu.com/ 具体实现步骤: 导入urlib库和re正则 使用urllib.request.Request()创建request请求对象 使用urllib.request.urlopen执行信息爬取,并返回Response对象 使用read()读取信息,使用decode()执行解码 使用re正则解析结果 遍历输出结果

  • 5.1 网络爬虫概述: 网络爬虫(Web Spider)又称网络蜘蛛、网络机器人,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。 网络爬虫按照系统结构和实现技术,大致可分为一下集中类型: 通用网络爬虫:就是尽可能大的网络覆盖率,如 搜索引擎(百度、雅虎和谷歌等…)。 聚焦网络爬虫:有目标性,选择性地访问万维网来爬取信息。 增量式网络爬虫:只爬取新产生的或者已经更新的页面信息。特点:耗费

  • 图片来源于网络 1. 爬虫的定义 网络爬虫(又称为网页蜘蛛,网络机器人,在 FOAF 社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。—— 百度百科定义 详细定义参照 慕课网注解: 爬虫其实是一种自动化信息采集程序或脚本,可以方便的帮助大家获得自己想要的特定信息。比如说,像百度,谷歌等搜索引擎

  • 对于FCM,我们使用firebase注册令牌来标识设备。FCM服务器如何知道需要通过连接向其发送消息的设备的IP?例如,如果我在一个不断移动,我的IP不断变化,那么FCM服务器需要知道它。是不是有一个服务坐在我的应用程序有责任更新它?它到底是怎么发生的?如果可能,请提供一些可靠的来源的链接来解释这一点。

  • 本文向大家介绍基于MATLAB神经网络图像识别的高识别率代码,包括了基于MATLAB神经网络图像识别的高识别率代码的使用技巧和注意事项,需要的朋友参考一下 MATLAB神经网络图像识别高识别率代码 识别率还是挺高的。但是最大的难点问题是图像的预处理,分割,我觉得智能算法的识别已经做得很好了。最重要的是图像预处理分割。 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的