CN112202784B - 反爬虫方法、装置及存储介质 - Google Patents
反爬虫方法、装置及存储介质 Download PDFInfo
- Publication number
- CN112202784B CN112202784B CN202011062053.8A CN202011062053A CN112202784B CN 112202784 B CN112202784 B CN 112202784B CN 202011062053 A CN202011062053 A CN 202011062053A CN 112202784 B CN112202784 B CN 112202784B
- Authority
- CN
- China
- Prior art keywords
- client
- resource
- sequence
- preset
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Virology (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及计算机网络技术领域,公开了一种反爬虫方法、装置及存储介质,该方法包括:确定在预设时间内客户端请求资源的顺序,其中,该资源为基于任一网页标签被触发后而需要请求的至少一个子资源;确定客户端请求至少一个子资源的顺序是否为预设顺序;若否,则确定客户端的用户为爬虫用户。本发明提供的用户识别方法、装置及存储介质能够十分方便准确的完成爬虫用户的识别。
Description
技术领域
本发明涉及计算机网络技术领域,具体涉及一种反爬虫方法、装置及存储介质。
背景技术
爬虫是一种自动爬取网站页面上的内容的程序或脚本,恶意的爬虫会导致服务变慢,影响真正的用户使用,极大的影响用户体验,因此在不影响用户的使用的情况下,快速识别出爬虫用户,制止爬虫访问网站内容是很有必要的。
现有技术中大多是通过统计互联网协议(Internet Protocol Address,IP)地址的访问频率和次数来识别爬虫用户。然而,采用这样的方式仅能够识别出频繁爬取网站内容的爬虫用户,其识别爬虫用户的能力有限,并不能很好的识别出爬虫用户。
因此,如何提供一种有效的方案以准确的识别出爬虫用户,已成为现有技术中一亟待解决的难题。
发明内容
为了解决现有技术中存在的识别爬虫用户的能力有限的问题,本发明的目的在于提供一种反爬虫方法、装置及存储介质,以准确的识别出爬虫用户。
第一方面,本发明提供了一种反爬虫方法,包括:
确定在预设时间内客户端请求资源的顺序,其中,所述资源为基于任一网页标签被触发后而需要请求的至少一个子资源;
确定所述客户端请求所述至少一个子资源的顺序是否为预设顺序;
若否,则确定所述客户端的用户为爬虫用户。
通过上述设计,本发明通过在网页标签被触发后,确定在预设时间内客户端请求的至少一个子资源的顺序是否为预设顺序,从而确定出客户端的用户是否为爬虫用户,从而能够十分方便准确的完成爬虫用户的识别。
在一个可能的设计中,确定在预设时间内客户端请求资源的顺序,包括:
接收客户端发送的访问请求,所述访问请求是用于请求访问所述任一网页标签的内容的请求;
响应所述访问请求,确定在预设时间内客户端资源的顺序。
基于上述公开的内容,可确定出在预设时间内客户端资源的顺序,以便于后续确定客户端的用户是否为爬虫用户。
在一个可能的设计中,所述至少一个子资源为至少一个静态资源和/或至少一个动态资源;确定所述客户端请求所述至少一个子资源的顺序是否为预设顺序,包括:
确定所述客户端请求所述至少一个静态资源的顺序是否为第一预设子顺序;和/或
确定所述客户端请求所述至少一个动态资源的顺序是否为第二预设子顺序。
基于上述公开的内容,能够根据请求静态资源的顺序和请求动态资源的顺放是否为预设的顺序,从而确定出客户端的用户是否为爬虫用户。
在一个可能的设计中,确定所述客户端请求所述至少一个子资源的顺序是否为预设顺序,包括:
确定在预设时间内所述客户端请求所述至少一个静态资源和所述至少一个动态资源的比例;
若所述至少一个静态资源和所述至少一个动态资源的比例在预设比例范围内,确定所述客户端请求所述至少一个静态资源的顺序是否为第一预设子顺序和确定所述客户端请求所述至少一个动态资源的顺序是否为第二预设子顺序。
基于上述公开的内容,能够根据静态资源和动态资源的比例以及静态资源和动态资源的顺序,确定出客户端的用户是否为爬虫用户。
在一个可能的设计中,若所述客户端请求所述至少一个子资源的顺序为所述预设顺序,所述方法还包括:
若所述客户端两次访问所述任一网页标签的时间间隔小于预设时间间隔,则确定所述客户端的用户为爬虫用户。
基于上述公开的内容,能够识别出频繁爬取网页内容的爬虫用户。
在一个可能的设计中,若所述客户端请求所述至少一个子资源的顺序为所述预设顺序,所述方法还包括:
若所述客户端在一段时间内,在同一时间点访问所述任一网页标签的次数超过预设次数,则确定所述客户端的用户为爬虫用户。
基于上述公开的内容,能够识别出定时爬取网页内容的爬虫用户。
第二方面,本发明提供了一种反爬虫装置,包括:
第一确定单元,用于确定在预设时间内客户端请求资源的顺序,其中,所述资源为基于任一网页标签被触发后而需要请求的至少一个子资源;
第二确定单元,用于确定所述客户端请求所述至少一个子资源的顺序是否为预设顺序;
第三确定单元,用于在所述客户端请求所述至少一个子资源的顺序不是预设顺序时,确定所述客户端的用户为爬虫用户。
在一个可能的设计中,第一确定单元在用于确定在预设时间内客户端请求资源的顺序时,具体用于:
接收客户端发送的访问请求,所述访问请求是用于请求访问所述任一网页标签的内容的请求;
响应所述访问请求,确定在预设时间内客户端资源的顺序。
在一个可能的设计中,所述至少一个子资源为至少一个静态资源和/或至少一个动态资源,第二确定单元在用于确定所述客户端请求所述至少一个子资源的顺序是否为预设顺序时,具体用于:
确定所述客户端请求所述至少一个静态资源的顺序是否为第一预设子顺序;和/或
确定所述客户端请求所述至少一个动态资源的顺序是否为第二预设子顺序。
在一个可能的设计中,第二确定单元在用于确定所述客户端请求所述至少一个子资源的顺序是否为预设顺序时,具体用于:
确定在预设时间内所述客户端请求所述至少一个静态资源和所述至少一个动态资源的比例;
若所述至少一个静态资源和所述至少一个动态资源的比例在预设比例范围内,确定所述客户端请求所述至少一个静态资源的顺序是否为第一预设子顺序和确定所述客户端请求所述至少一个动态资源的顺序是否为第二预设子顺序。
在一个可能的设计中,反爬虫装置还包括:
第四确定单元,用于若所述客户端请求所述至少一个子资源的顺序为所述预设顺序,且所述客户端在一段时间内,在同一时间点访问所述任一网页标签的次数超过预设次数,则确定所述客户端的用户为爬虫用户。
在一个可能的设计中,反爬虫装置还包括:
第五确定单元,用于若所述客户端请求所述至少一个子资源的顺序为所述预设顺序,且所述客户端在一段时间内,在同一时间点访问所述任一网页标签的次数超过预设次数,则确定所述客户端的用户为爬虫用户。
第三方面,本发明提供了一种反爬虫装置,包括包括依次通信相连的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如上述第一方面所述的反爬虫方法。
第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行第一方面所述的反爬虫方法。
第五方面,本发明提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如第一方面所述的反爬虫方法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的反爬虫方法的流程图。
图2是本发明提供的包含多个网页标签的浏览器页面的示意图。
图3是本发明提供的触发页面标签后的跳转至页面标签所对应页面的示意图。
图4是本发明提供的反爬虫装置的结构示意图。
图5是本发明提供的另一反爬虫装置的结构示意图。
具体实施方式
下面结合附图及具体实施例来对本发明作进一步阐述。在此需要说明的是,对于这些实施例方式的说明虽然是用于帮助理解本发明,但并不构成对本发明的限定。本文公开的特定结构和功能细节仅用于描述本发明的示例实施例。然而,可用很多备选的形式来体现本发明,并且不应当理解为本发明限制在本文阐述的实施例中。
应当理解,尽管本文可能使用术语第一、第二等等来描述各种单元,但是这些单元不应当受到这些术语的限制。这些术语仅用于区分一个单元和另一个单元。例如可以将第一单元称作第二单元,并且类似地可以将第二单元称作第一单元,同时不脱离本发明的示例实施例的范围。
应当理解,对于本文中可能出现的术语“和/或”,其仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,单独存在B,同时存在A和B三种情况;对于本文中可能出现的术语“/和”,其是描述另一种关联对象关系,表示可以存在两种关系,例如,A/和B,可以表示:单独存在A,单独存在A和B两种情况;另外,对于本文中可能出现的字符“/”,一般表示前后关联对象是一种“或”关系。
应当理解,在本文中若将单元称作与另一个单元“连接”、“相连”或“耦合”时,它可以与另一个单元直相连接或耦合,或中间单元可以存在。相対地,在本文中若将单元称作与另一个单元“直接相连”或“直接耦合”时,表示不存在中间单元。另外,应当以类似方式来解释用于描述单元之间的关系的其他单词(例如,“在……之间”对“直接在……之间”,“相邻”对“直接相邻”等等)。
应当理解,本文使用的术语仅用于描述特定实施例,并不意在限制本发明的示例实施例。若本文所使用的,单数形式“一”、“一个”以及“该”意在包括复数形式,除非上下文明确指示相反意思。还应当理解,若术语“包括”、“包括了”、“包含”和/或“包含了”在本文中被使用时,指定所声明的特征、整数、步骤、操作、单元和/或组件的存在性,并且不排除一个或多个其他特征、数量、步骤、操作、单元、组件和/或他们的组合存在性或增加。
应当理解,还应当注意到在一些备选实施例中,所出现的功能/动作可能与附图出现的顺序不同。例如,取决于所涉及的功能/动作,实际上可以实质上并发地执行,或者有时可以以相反的顺序来执行连续示出的两个图。
应当理解,在下面的描述中提供了特定的细节,以便于对示例实施例的完全理解。然而,本领域普通技术人员应当理解可以在没有这些特定细节的情况下实现示例实施例。例如可以在框图中示出系统,以避免用不必要的细节来使得示例不清楚。在其他实例中,可以不以不必要的细节来示出众所周知的过程、结构和技术,以避免使得示例实施例不清。
实施例
为了实现准确识别出爬虫用户,本申请实施例提供了一种反爬虫方法、装置及存储介质,该反爬虫方法、装置及存储介质可根据客户端请求的子资源的顺序确定出客户端的用户是否为爬虫用户。
本申请实施例提供的反爬虫方法可应用于服务端,所述服务端可以是被请求网页的服务器,也可以是与被请求网页的服务器通信连接的第三方服务器,还可以是连接客户端与被请求网页的服务器之间配置的Nginx(engine x)服务器的第三方服务器。
具体的,在网页的静态资源和动态资源部署在同一服务器的情形下,本申请实施例提供的反爬虫方法可应用于被请求网页的服务器或与被请求网页的服务器通信连接的第三方服务器。若网页的静态资源和动态资源分部署在两个不同的服务器,则可在客户端与该两个不同的服务器之间配置一Nginx服务器,并配置一与Nginx服务器连接的第三方服务器,在此情形下本申请实施例提供的反爬虫方法可应用于与Nginx服务器连接的第三方服务器。
其中,若网页的静态资源和动态资源分别部署在两个服务器时,该两个服务器可共用一个端口,以确保客户端既请求动态资源又请求静态资源时,两个服务器获得针对动态资源和静态资源的请求的时间间隔不会过大,避免由于获得针对动态资源和静态资源的请求的时间间隔过大而导致的爬虫用户误判的情形。
其中,静态资源可以是指服务器可直接从内存取到并返回客户端解析并渲染显示的资源,如超级文本标记语言(Hyper Text Markup Language,HTML)文件、层叠样式表(Cascading Style Sheets,CSS)文件、图片文件等。动态资源可以是由服务器从数据库调取并返回给客户端解析渲染处理的资源。
为便于描述,本申请实施例以同时部署静态资源和动态资源的服务器为执行主体进行说明。可以理解,所述执行主体并不构成对本申请实施例的限定。
如图1所示,是本申请实施例提供的反爬虫方法的流程图,所述反爬虫方法可以包括如下步骤:
步骤S101.确定在预设时间内客户端请求资源的顺序。
其中,所述请求资源为基于任一网页标签被触发后而需要请求的至少一个子资源。
如图2所示,正常用户在通过浏览器打开网页时,会在浏览器页面显示出多个网页标签的图标,如图2中所示的“2345网址导航”、“专利学院”等就是浏览器页面上显示的网页标签的图标。当点击其中一个网页标签的图标时,则会触发该网页标签,并跳转到相应的页面。当点击网页标签的图标“2345网址导航”时,客户端请求“2345网址导航”的页面资源,并跳转至2345网址导航”的页面。其中请求的“2345网址导航”的页面资源即为请求的子资源,如用于渲染主页面的js、cs资源、图3中显示的图片资源等。
本申请实施例中,步骤S201的具体实现过程包括如下步骤:
接收客户端发送的访问请求,所述访问请求是用于请求访问任一网页标签的内容的请求;
响应所述访问请求,确定在预设时间内客户端请求资源的顺序。
本申请实施例中,请求资源的顺序可以是用于请求资源的统一资源定位符(Uniform Resource Locator,URL)请求的顺序。
所述预设时间内客户端资源的顺序,可以是从触发网页标签开始起的预设时间段内该客户端请求的所有子资源,也可以是从客户端请求第一个子资源开始起的预设时间段内该客户端请求的所有子资源的顺序。当预设时间内客户端资源的顺序,是从客户端请求第一个子资源开始起的预设时间段内该客户端请求的所有子资源的顺序时,该预设时间段可以以客户端发起请求的时间为依据确定,也可以是服务端接收到客户端所发起请求的时间依据确定。
例如,客户端发起请求以请求第一个子资源的时为11时22分33秒120毫秒,而服务端接收到该请求的时间为11时22分33秒420毫秒,则该预设时间内可以是11时22分33秒120毫秒开始的预设时间段内,也可以是11时22分33秒420毫秒开始的预设时间段内。
该预设时间段可根据正常请求一个页面标签下的页面功能时,请求该页面功能的至少一个资源的时间间隔来确定。例如,在正常情况下点击页面上的登录控件而请求资源时,客户端会向被请求网页的服务器请求一验证账号、密码是否正确的资源,一图片资源,以及渲染页面的js、cs资源。正常情况下,请求这几个资源的时间间隔不会超过2s,则该预设时间段也设置为略大于2s。
本申请实施例中,客户端发起的请求中携带有用户标识,服务端可根据用户标识来识别出是哪一个客户端请求资源,所述用户标识可以包括客户端的IP地址。
当多个客户端处于同一外网时,会共用一个外网IP,若同一外网的多个客户端同时请求资源时,由于多个客户端共用一个IP,因为会被服务端认为是同一客户端发起的请求,从而导致误判。因此,为避免多个客户端共用一个IP而导致的误判,所述用户标识除客户端的IP地址外,还可以包括用户端的媒体存取控制(Media Access Control,MAC)地址。
本申请实施例中,确定在预设时间内客户端请求资源的顺序,是在任一网页标签被触发后确定的。可以理解的,在其他的一些实施例中,确定在预设时间内客户端请求资源的顺序,也可以是在没有网页标签被触发的情形下确定。例如,服务端可以统计客户端请求某一个子资源(或第一个子资源)开始起的预设时间段内请求的所有子资源,并将统计的所有子资源的顺序作为预设时间内客户端请求资源的顺序。
可以理解的,当执行主体为与被请求网页的服务器通信连接的第三方服务器是,可通过被请求网页的服务器依序将客户端发起的请求转发给第三方服务器,从而使第三方服务器能够根据被请求网页的服务器转发的请求确定出预设时间内客户端请求资源的顺序。
当执行主体是与Nginx服务器连接的第三方服务器时,可由Nginx服务器记录下客户端所有请求动态资源和请求静态资源的请求,并转发给第三方服务器,然后由第三方服务器确定出预设时间内客户端请求资源的顺序。
步骤S102.确定客户端请求至少一个子资源的顺序是否为预设顺序,若否,则执行步骤S103。
至少一个子资源可以是至少一个静态资源,也可以是至少一个动态资源,还可以既包括至少一个静态资源又包括至少一个动态资源。
若该至少一个子资源为至少一个静态资源,则可确定客户端请求所述至少一个静态资源的顺序是否为第一预设子顺序,如果是则判定客户端请求至少一个子资源的顺序为预设顺序,否则判定客户端请求至少一个子资源的顺序不是预设顺序。
若该至少一个子资源为至少一个动态资源,则可确定客户端请求所述至少一个动态资源的顺序是否为第二预设子顺序,如果是则判定客户端请求至少一个子资源的顺序为预设顺序,否则判定客户端请求至少一个子资源的顺序不是预设顺序。
若该至少一个子资源既包括至少一个静态资源又包括至少一个动态资源,则确定客户端请求所述至少一个子资源的顺序是否为预设顺序可以有如下两种方式。
方式一
若该至少一个子资源既包括至少一个静态资源又包括至少一个动态资源,则确定客户端请求所述至少一个静态资源的顺序是否为第一预设子顺序,以及确定客户端请求所述至少一个动态资源的顺序是否为第二预设子顺序。如果客户端请求所述至少一个静态资源的顺序为第一预设子顺序,且客户端请求所述至少一个动态资源的顺序为第二预设子顺序,则判定客户端请求至少一个子资源的顺序为预设顺序,否则判定客户端请求至少一个子资源的顺序不是预设顺序。
本申请实施例中,在至少一个子资源既包括至少一个静态资源又包括至少一个动态资源的情形下,当客户端请求所述至少一个静态资源的顺序为第一预设子顺序,且客户端请求所述至少一个动态资源的顺序为第二预设子顺序,才判定客户端请求至少一个子资源的顺序为预设顺序。可以理解的,在其他的一些实施例中,当客户端请求所述至少一个静态资源的顺序为第一预设子顺序,或者客户端请求所述至少一个动态资源的顺序为第二预设子顺序,则也可以认为客户端请求至少一个子资源的顺序为预设顺序。
需要说明的是,所述第一预设子顺序和第二预设子顺序均可以为多个。当所述至少一个静态资源的顺序与其中的一个第一预设子顺序相同,则可认为所述至少一个静态资源的顺序为第一预设子顺序。当所述至少一个动态资源的顺序与其中的一个第二预设子顺序相同,则可认为所述至少一个动态资源的顺序为第二预设子顺序。
例如,至少一个子资源包括静态资源a、静态资源b、静态资源c、动态资源d和动态资源e,其中的静态资源的顺序依次为静态资源c、静态资源b和静态资源a,其中的动态资源的顺序依次为动态资源d和动态资源e。假定有两个第一预设子顺序和两个第二预设子顺序,两个第一预设子顺序分别为第一预设子顺序A和第一预设子顺序B,两个第二预设子顺序分别为第二预设子顺序C和第二预设子顺序D。假定第一预设子顺序A定义的资源顺序依次为静态资源a、静态资源f和静态资源c,第一预设子顺序B定义的资源顺序依次为静态资源c、静态资源b和静态资源a,第二预设子顺序C定义的资源顺序依次为动态资源g、动态资源d和动态资源e,第二预设子顺序D定义的资源顺序依次为动态资源d和动态资源e。由于该至少一个子资源中静态资源的顺序与第一预设子顺序B定义的资源顺序一致,该至少一个子资源中动态态资源的顺序与第二预设子顺序D定义的资源顺序一致,因此判定客户端请求至少一个子资源的顺序为预设顺序。
方式二
若该至少一个子资源既包括至少一个静态资源又包括至少一个动态资源,则可先判定在预设时间内所述客户端请求所述至少一个静态资源和所述至少一个动态资源的比例。如果所述至少一个静态资源和所述至少一个动态资源的比例在预设比例范围内,则判定所述客户端请求所述至少一个静态资源的顺序是否为第一预设子顺序和确定所述客户端请求所述至少一个动态资源的顺序是否为第二预设子顺序。如果如果客户端请求所述至少一个静态资源的顺序为第一预设子顺序,且客户端请求所述至少一个动态资源的顺序为第二预设子顺序,则判定客户端请求至少一个子资源的顺序为预设顺序。
步骤S103.确定客户端的用户为爬虫用户。
本申请实施例中,服务端可建立黑名单列表,在确定客户端的用户为爬虫用户时,可将客户端的用户标记为黑名单用户,并将客户端的标识信息写入黑名单列表中。当客户端再次请求资源时,可根据黑名单列表判定该客户端的用户为黑名单用户,并不向客户端返回请求的资源。
进一步的,在将客户端的标识信息写入黑名单列表中时,还可以写入数据的有效时限,即仅在有效时限内该用户为黑名单用户,超过该有效时限后如果该客户端再次请求资源,可再次判断客户端的用户是否为爬虫用户。
由此通过前述步骤S101~S103所述的反爬虫方法,通过在网页标签被触发后,确定在预设时间内客户端请求的至少一个子资源中动态资源和静态资源是否分别为预设顺序,从而确定出客户端的用户是否为爬虫用户。如此,从而能够十分方便准确的完成爬虫用户的识别,避免恶意爬虫导致服务器的服务速度变缓,提升用户体验,保障网站数据的安全性。同时,由于能够通过包含IP地址和Mac地址的用户标识识别出同一客户端,避免多个共用同一外网IP的客户端所发起的请求被认为是同一客户端所发起的情形,防止爬虫用户的误判。
本实施例在前述第一方面的技术方案基础上,还具体提出了更进一步识别爬虫用户的可能设计一,即在所述客户端请求所述至少一个子资源的顺序为所述预设顺序的情形下,若所述客户端两次访问所述任一网页标签的时间间隔小于预设时间间隔,则确定所述客户端的用户为爬虫用户。
客户端的用户在请求资源时是基于用户的手动操作而发起的,访问同一页面的时间间隔不会过低,因而同一客户端访问同一网页标签的时间间隔不可能低于正常使用者点击网页标签的时间间隔,而爬虫用户访问同一网页标签的时间间隔则不会有此限制。因此,可预先设置一预设时间间隔,在确定客户端的用户是否为爬虫用户时,可判断客户端两次访问同一网页标签的时间间隔是否小于预设时间间隔,如果客户端两次访问同一网页标签的时间间隔小于预设时间间隔,则说明客户端的用户是爬虫用户。
例如,该预设时间间隔为1s,如果一客户端两次访问网页标签E的时间分别是10时11分12秒100毫秒和10时11分12秒500毫秒,该客户端两次访问网页标签E的时间间隔为400ms,小于1s,此时可判定该客户端的用户为爬虫用户。
通过前述的可能设计一,能够识别出频繁爬取网站内容的爬虫用户,能够进一步准确识别爬虫用户。
本实施例在前述第一方面的技术方案基础上,还具体提出了更进一步识别爬虫用户的可能设计二,即在所述客户端请求所述至少一个子资源的顺序为所述预设顺序的情形下,若所述客户端在一段时间内,在同一时间点访问所述任一网页标签的次数超过预设次数,则确定所述客户端的用户为爬虫用户。
爬虫是一种按照一定的规则,自动地抓取网络信息的程序或者脚本,因此一些爬虫用户会被设置成在周期内的指定时间爬取网站页面内容。因此,在识别用户是否为爬虫用户时,可判断一段时间内客户端在同一时间点访问任一网页标签的次数是否超过预设次数,如果是则判定客户端的用户为爬虫用户。
其中,该一段时间可以是一天、一周等,本申请实施例中不做具体限定。通过前述的可能设计二,可通过判断一段时间内客户端在同一时间点访问任一网页标签的次数是否超过预设次数确定出客户端的用户是否为爬虫用户,如此能够识别出按照设定规则定时爬取网站页面内容的爬虫用户,进一步提高爬虫用户的识别准确性。
第二方面,本申请实施例提供了一种反爬虫装置,请参阅图4,反爬虫装置包括:
第一确定单元,用于确定在预设时间内客户端请求资源的顺序,其中,所述资源为基于任一网页标签被触发后而需要请求的至少一个子资源;
第二确定单元,用于确定所述客户端请求所述至少一个子资源的顺序是否为预设顺序;
第三确定单元,用于在所述客户端请求所述至少一个子资源的顺序不是预设顺序时,确定所述客户端的用户为爬虫用户。
在一个可能的设计中,第一确定单元在用于确定在预设时间内客户端请求资源的顺序时,具体用于:
接收客户端发送的访问请求,所述访问请求是用于请求访问所述任一网页标签的内容的请求;
响应所述访问请求,确定在预设时间内客户端资源的顺序。
在一个可能的设计中,所述至少一个子资源为至少一个静态资源和/或至少一个动态资源,第二确定单元在用于确定所述客户端请求所述至少一个子资源的顺序是否为预设顺序时,具体用于:
确定所述客户端请求所述至少一个静态资源的顺序是否为第一预设子顺序;和/或
确定所述客户端请求所述至少一个动态资源的顺序是否为第二预设子顺序。
在一个可能的设计中,第二确定单元在用于确定所述客户端请求所述至少一个子资源的顺序是否为预设顺序时,具体用于:
确定在预设时间内所述客户端请求所述至少一个静态资源和所述至少一个动态资源的比例;
若所述至少一个静态资源和所述至少一个动态资源的比例在预设比例范围内,确定所述客户端请求所述至少一个静态资源的顺序是否为第一预设子顺序和确定所述客户端请求所述至少一个动态资源的顺序是否为第二预设子顺序。
在一个可能的设计中,反爬虫装置还包括:
第四确定单元,用于若所述客户端请求所述至少一个子资源的顺序为所述预设顺序,且所述客户端在一段时间内,在同一时间点访问所述任一网页标签的次数超过预设次数,则确定所述客户端的用户为爬虫用户。
在一个可能的设计中,反爬虫装置还包括:
第五确定单元,用于若所述客户端请求所述至少一个子资源的顺序为所述预设顺序,且所述客户端在一段时间内,在同一时间点访问所述任一网页标签的次数超过预设次数,则确定所述客户端的用户为爬虫用户。
本实施例第二方面提供的装置的工作过程、工作细节和技术效果,可以参见实施例第一方面,于此不再赘述。
如图5所示,本申请实施例第三方面提供了一种反爬虫装置,包括依次通信相连的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如实施例第一方面所述的反爬虫方法。
具体举例的,所述存储器可以但不限于包括随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、闪存(Flash Memory)、先进先出存储器(First Input First Output,FIFO)和/或先进后出存储器(last input first output,FILO)等等;所述处理器可以不限于采用型号为STM32F105系列的微处理器、ARM(AdvancedRISC Machines)、X86等架构处理器或集成网络处理器(NPU,neural-network processingunits)的处理器;所述收发器可以但不限于为WiFi(无线保真)无线收发器、蓝牙无线收发器、通用分组无线服务技术(General Packet Radio Service,GPRS)无线收发器、紫蜂协议(基于IEEE802.15.4标准的低功耗局域网协议,ZigBee)无线收发器、3G收发器、4G收发器和/或5G收发器等。
本实施例第三方面提供的装置的工作过程、工作细节和技术效果,可以参见实施例第一方面,于此不再赘述。
本实施例第四方面提供了一种存储包含有实施例第一方面所述的反爬虫方法的指令的计算机可读存储介质,即所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如第一方面所述的反爬虫方法。其中,所述计算机可读存储介质是指存储数据的载体,可以但不限于包括软盘、光盘、硬盘、闪存、优盘和/或记忆棒(MemoryStick)等,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
本实施例第四方面提供的计算机可读存储介质的工作过程、工作细节和技术效果,可以参见实施例第一方面,于此不再赘述。
本实施例第五方面提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如实施例第一方面所述的反爬虫方法,其中,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
以上所描述的多个实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台仓库代码的合并装置执行各个实施例或者实施例的某些部分所述的方法。
本发明不局限于上述可选实施方式,任何人在本发明的启示下都可得出其他各种形式的产品,但不论在其形状或结构上作任何变化,凡是落入本发明权利要求界定范围内的技术方案,均落在本发明的保护范围之内。
Claims (8)
1.一种反爬虫方法,其特征在于,包括:
确定在预设时间内客户端请求资源的顺序,其中,所述资源为基于任一网页标签被触发后而需要请求的至少一个子资源;
确定所述客户端请求所述至少一个子资源的顺序是否为预设顺序;
若否,则确定所述客户端的用户为爬虫用户;
确定所述客户端请求所述至少一个子资源的顺序是否为预设顺序,包括:
确定在预设时间内所述客户端请求所述至少一个静态资源和所述至少一个动态资源的比例;
若所述至少一个静态资源和所述至少一个动态资源的比例在预设比例范围内,确定所述客户端请求所述至少一个静态资源的顺序是否为第一预设子顺序和确定所述客户端请求所述至少一个动态资源的顺序是否为第二预设子顺序。
2.根据权利要求1所述的方法,其特征在于,确定在预设时间内客户端请求资源的顺序,包括:
接收客户端发送的访问请求,所述访问请求是用于请求访问所述任一网页标签的内容的请求;
响应所述访问请求,确定在预设时间内客户端资源的顺序。
3.如权利要求1所述的方法,其特征在于,若所述客户端请求所述至少一个子资源的顺序为所述预设顺序,所述方法还包括:
若所述客户端两次访问所述任一网页标签的时间间隔小于预设时间间隔,则确定所述客户端的用户为爬虫用户。
4.如权利要求1所述的方法,其特征在于,若所述客户端请求所述至少一个子资源的顺序为所述预设顺序,所述方法还包括:
若所述客户端在一段时间内,在同一时间点访问所述任一网页标签的次数超过预设次数,则确定所述客户端的用户为爬虫用户。
5.一种反爬虫装置,其特征在于,包括:
第一确定单元,用于确定在预设时间内客户端请求资源的顺序,其中,所述资源为基于任一网页标签被触发后而需要请求的至少一个子资源;
第二确定单元,用于确定所述客户端请求所述至少一个子资源的顺序是否为预设顺序;
第三确定单元,用于在所述客户端请求所述至少一个子资源的顺序不是预设顺序时,确定所述客户端的用户为爬虫用户;
第二确定单元在用于确定所述客户端请求所述至少一个子资源的顺序是否为预设顺序时,具体用于:
确定在预设时间内所述客户端请求所述至少一个静态资源和所述至少一个动态资源的比例;
若所述至少一个静态资源和所述至少一个动态资源的比例在预设比例范围内,确定所述客户端请求所述至少一个静态资源的顺序是否为第一预设子顺序和确定所述客户端请求所述至少一个动态资源的顺序是否为第二预设子顺序。
6.根据权利要求5所述的反爬虫装置,其特征在于,第一确定单元在用于确定在预设时间内客户端请求资源的顺序时,具体用于:
接收客户端发送的访问请求,所述访问请求是用于请求访问所述任一网页标签的内容的请求;
响应所述访问请求,确定在预设时间内客户端资源的顺序。
7.一种反爬虫装置,其特征在于,包括依次通信相连的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如权利要求1~4任意一项所述的反爬虫方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如权利要求1~4任意一项所述的反爬虫方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011062053.8A CN112202784B (zh) | 2020-09-30 | 2020-09-30 | 反爬虫方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011062053.8A CN112202784B (zh) | 2020-09-30 | 2020-09-30 | 反爬虫方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112202784A CN112202784A (zh) | 2021-01-08 |
CN112202784B true CN112202784B (zh) | 2023-04-18 |
Family
ID=74013694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011062053.8A Active CN112202784B (zh) | 2020-09-30 | 2020-09-30 | 反爬虫方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112202784B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114996623A (zh) * | 2022-08-05 | 2022-09-02 | 天聚地合(苏州)科技股份有限公司 | 爬虫识别方法、装置、电子设备及计算机可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101388768A (zh) * | 2008-10-21 | 2009-03-18 | 北京启明星辰信息技术股份有限公司 | 检测恶意http请求的方法及装置 |
CN102801698A (zh) * | 2011-12-20 | 2012-11-28 | 北京安天电子设备有限公司 | 一种基于url请求时序的恶意代码检测方法和系统 |
CN107517200A (zh) * | 2017-07-21 | 2017-12-26 | 复旦大学 | 一种Web服务器的恶意爬虫防御策略选择方法 |
CN107943949A (zh) * | 2017-11-24 | 2018-04-20 | 厦门集微科技有限公司 | 一种确定网络爬虫的方法及服务器 |
CN108881396A (zh) * | 2018-05-24 | 2018-11-23 | 平安普惠企业管理有限公司 | 网络数据的加载方法、装置、设备和计算机存储介质 |
CN109862018A (zh) * | 2019-02-21 | 2019-06-07 | 中国工商银行股份有限公司 | 基于用户访问行为的反爬虫方法及系统 |
CN111125704A (zh) * | 2019-12-27 | 2020-05-08 | 北京安信天行科技有限公司 | 一种网页挂马识别方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8108933B2 (en) * | 2008-10-21 | 2012-01-31 | Lookout, Inc. | System and method for attack and malware prevention |
-
2020
- 2020-09-30 CN CN202011062053.8A patent/CN112202784B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101388768A (zh) * | 2008-10-21 | 2009-03-18 | 北京启明星辰信息技术股份有限公司 | 检测恶意http请求的方法及装置 |
CN102801698A (zh) * | 2011-12-20 | 2012-11-28 | 北京安天电子设备有限公司 | 一种基于url请求时序的恶意代码检测方法和系统 |
CN107517200A (zh) * | 2017-07-21 | 2017-12-26 | 复旦大学 | 一种Web服务器的恶意爬虫防御策略选择方法 |
CN107943949A (zh) * | 2017-11-24 | 2018-04-20 | 厦门集微科技有限公司 | 一种确定网络爬虫的方法及服务器 |
CN108881396A (zh) * | 2018-05-24 | 2018-11-23 | 平安普惠企业管理有限公司 | 网络数据的加载方法、装置、设备和计算机存储介质 |
CN109862018A (zh) * | 2019-02-21 | 2019-06-07 | 中国工商银行股份有限公司 | 基于用户访问行为的反爬虫方法及系统 |
CN111125704A (zh) * | 2019-12-27 | 2020-05-08 | 北京安信天行科技有限公司 | 一种网页挂马识别方法及系统 |
Non-Patent Citations (1)
Title |
---|
爬虫技术综述;冯俐;《电脑知识与技术》;20170925;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112202784A (zh) | 2021-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107463641B (zh) | 用于改进对搜索结果的访问的系统和方法 | |
US9922132B2 (en) | Method and apparatus for speeding up web page access | |
US8856325B2 (en) | Network element failure detection | |
CN107341395B (zh) | 一种拦截爬虫的方法 | |
US20120324043A1 (en) | Access to network content | |
CN105245550B (zh) | 域名劫持判定方法和装置 | |
US9503506B2 (en) | Transit-mode-based webpage accessing method, system, and crawler route server | |
CN110968824A (zh) | 页面数据处理方法和装置 | |
CN111538885B (zh) | 页面监听方法、装置、电子设备及存储介质 | |
CN106899549B (zh) | 一种网络安全检测方法及装置 | |
US20190372878A1 (en) | Web site reachability management for content browsing | |
US20220353245A1 (en) | File upload control for client-side applications in proxy solutions | |
CN107786383A (zh) | 心跳数据包的发送方法及装置 | |
US20160112492A1 (en) | Method and apparatus for providing network resources at intermediary server | |
CN112202784B (zh) | 反爬虫方法、装置及存储介质 | |
CN104462242B (zh) | 网页回流量统计方法及装置 | |
JP6525486B2 (ja) | ネットワークリクエスト及びレスポンスの処理方法、端末、サーバ及び記憶媒体 | |
US9285869B2 (en) | System, method and computer readable medium for invoking applications | |
US10931771B2 (en) | Method and apparatus for pushing information | |
CN107332703B (zh) | 一种多应用日志的查看方法及装置 | |
CN103051722B (zh) | 一种确定页面是否被劫持的方法及相关设备 | |
CN109587198B (zh) | 图文信息推送方法及装置 | |
US8402367B1 (en) | Smart reload pages | |
US20140237133A1 (en) | Page download control method, system and program for ie core browser | |
CN113127788B (zh) | 页面处理方法、对象处理方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |