CN116346377A - 一种反爬虫方法、装置及介质 - Google Patents
一种反爬虫方法、装置及介质 Download PDFInfo
- Publication number
- CN116346377A CN116346377A CN202111588944.1A CN202111588944A CN116346377A CN 116346377 A CN116346377 A CN 116346377A CN 202111588944 A CN202111588944 A CN 202111588944A CN 116346377 A CN116346377 A CN 116346377A
- Authority
- CN
- China
- Prior art keywords
- anticreeper
- html page
- page
- node
- ciphertext
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000003068 static effect Effects 0.000 claims abstract description 57
- 238000003780 insertion Methods 0.000 claims description 61
- 230000037431 insertion Effects 0.000 claims description 61
- 238000012545 processing Methods 0.000 claims description 8
- 238000004422 calculation algorithm Methods 0.000 claims description 7
- 238000013515 script Methods 0.000 claims description 6
- 230000000875 corresponding effect Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 241000239290 Araneae Species 0.000 description 1
- 101100115215 Caenorhabditis elegans cul-2 gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001680 brushing effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Virology (AREA)
- Data Mining & Analysis (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明提供一种反爬虫方法、装置及介质,涉及计算机技术领域,该方法包括:在获取到超文本标记语言HTML页面的请求后,响应该请求,返回处理后的HTML页面;其中,处理后的HTML页面的文档对象化模型DOM结构中存在隐藏节点,和/或处理后的HTML页面存在加密的静态属性。本发明的方案能够解决现有的反爬虫方案仅可拦截低级爬虫请求的问题。
Description
技术领域
本发明涉及计算机技术领域,特别是指一种反爬虫方法、装置及介质。
背景技术
网络爬虫(Web Crawler)又称为网络蜘蛛(Web Spider),泛指一系列按照特定规则进行互联网信息自动抓取的程序或者脚本,它通常从一个称为种子页面的列表页开始抓取,通过遍历请求其中的详情页链接,获取到详情页响应并提取出目标信息。
网络爬虫广泛应用在数据挖掘、舆情分析、搜索引擎等业务领域。然而,存在一些不合法的恶意爬虫,通过程序性的批量请求,对服务的提供方造成安全隐患,例如:未经授权的批量获取网站的核心数据或敏感数据,造成企业数据资产流失;非法获取网站的个人用户信息,包括姓名、性别、联系方式等隐私信息,造成个人信息泄露风险;批量提交评论请求,达到刷评、控评目的,更甚者进行谩骂攻击、造谣污蔑等行为,严重干扰正常的工作和社会秩序。
网络爬虫在提取Web页面上目标内容的过程中,主要依赖于Web页面的整体文档对象化模型(Document Object Model,DOM)结构(如图1所示)和静态的页面属性。通常,同一网站的Web页面具有同构性和静态性的特征。爬虫程序的开发者首先会对Web页面的DOM结构进行分析,然后利用这些静态的结构和属性信息,通过定位或匹配方法,进行目标内容的解析和批量提取。
其中,定位和匹配方法主要有“正则匹配类”和“路径匹配类”两种,前者通过分析目标内容的上下文静态属性,制定相应的正则表达式;后者通过分析DOM结构的XPath表达式,确定目标内容的层级路径。例如,中国移动新闻中心(http://www.10086.cn/aboutus/news/bj/)栏目下,所有新闻的标题都可以用正则和XPath进行提取:利用同构的DOM结构,通过XPath表达式/html/body/div[3]/div[3]/div/h5,即可按照标题信息的层级路径完成匹配。利用静态的页面属性,通过正则表达式<div id="newsbody"><h5>(.*?)</h5>,即可按照标题信息的标签静态id完成匹配。
由于爬虫程序信息提取的过程完全依赖于Web页面同构的DOM结构和静态的页面属性(id/name/class),目前反爬虫方案主要是“先识别后限制”的技术路线,例如通过Http头(Headers)参数进行识别和限制,但仅可拦截无任何伪装的低级爬虫请求,爬虫开发者通过伪装Headers,即可绕过爬虫请求识别。
发明内容
本发明的目的是提供一种反爬虫方法、装置及介质,可解决现有的反爬虫方案仅可拦截低级爬虫请求的问题。
为达到上述目的,本发明的实施例提供一种反爬虫方法,包括:
获取超文本标记语言HTML页面的请求;
响应请求,返回处理后的HTML页面;其中,处理后的HTML页面的文档对象化模型DOM结构中存在隐藏节点,和/或处理后的HTML页面存在加密的静态属性。
为达到上述目的,本发明的实施例提供一种反爬虫装置,包括
获取模块,用于获取超文本标记语言HTML页面的请求;
处理模块,用于响应请求,返回处理后的HTML页面;其中,处理后的HTML页面的文档对象化模型DOM结构中存在隐藏节点,和/或处理后的HTML页面存在加密的静态属性。
为达到上述目的,本发明的实施例提供一种可读存储介质,其上存储有程序或指令,所述程序或指令被处理器执行时实现如上所述的反爬虫方法中的步骤。
本发明的上述技术方案的有益效果如下:
本发明实施例的反爬虫方法、装置及介质中,在获取到超文本标记语言HTML页面的请求后,响应该请求,返回处理后的HTML页面;其中,处理后的HTML页面的文档对象化模型DOM结构中存在隐藏节点,和/或处理后的HTML页面存在加密的静态属性。这样动态插入隐藏的DOM节点,可改变相关节点的层级结构和相对位置,使每次响应的HTML页面的DOM结构都不相同,消除节点路径的静态性和可匹配性,即使利用模拟浏览器技术获取到页面的HTML代码,依然不能通过路径匹配表达式对节点进行定位,从而防范爬虫。另外,对HTML页面的静态属性进行动态加密,保证每次加密结果的动态性和不可预测性,这样可以将恶意爬虫限制在开发和分析阶段,从而达到主动的防爬效果。
附图说明
图1为Web页面的DOM结构的示意图;
图2为本发明实施例的反爬虫方法的流程示意图;
图3为本发明实施例的反爬虫方法的方案流程示意图;
图4为本发明实施例的反爬虫装置的结构示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
在本发明的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
另外,本文中术语“系统”和“网络”在本文中常可互换使用。
在本申请所提供的实施例中,应理解,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
如图2所示,本发明实施例的一种反爬虫方法,包括但不限于以下步骤:
步骤21:获取超文本标记语言HTML页面的请求。
其中,获取客户端发送的HTML页面的请求。
步骤22:响应该请求,返回处理后的HTML页面;其中,处理后的HTML页面的文档对象化模型DOM结构中存在隐藏节点,和/或处理后的HTML页面存在加密的静态属性。
其中,根据客户端请求的URL及参数,计算出应予响应的原始HTML页面代码。对原始HTML页面代码进行处理,得到处理后的HTML页面并返回客户端。
这样,针对Web页面同构的DOM结构,采用动态插入隐藏DOM节点的方法,改变页面的整体DOM结构,破坏其同构性,使得“路径匹配类”信息提取方法失效。然后,针对Web页面上的静态属性,采用动态加密的方法,对HTML中静态的页面属性进行加密处理,使得“正则匹配类”信息提取方法失效。通过“动态插入隐藏DOM节点”和“静态属性动态加密”,可以使每次请求返回的页面代码都具有动态变化的特性,可以有效限制和防御爬虫程序。
其中,步骤22包括以下至少一项:在HTML页面的DOM结构中插入隐藏节点;对HTML页面的静态属性进行加密。
其中,对于一般的爬虫程序,开发者通常会先对HTML页面的DOM结构进行分析,利用页面DOM结构的统一性和静态性,制定相应的路径匹配表达式,完成目标数据的采集。为解决该问题,本发明实施例通过在指定节点前随机插入不影响页面显示效果的前置节点,改变相关节点的层级结构和相对位置,使每次响应的HTML页面的DOM结构都不相同,消除节点路径的静态性和可匹配性。
可选地,返回处理后的HTML页面包括:返回处理后的HTML页面以及对应的JavaScript和CSS资源。这样,将处理后的HTML页面及相关JavaScript和CSS资源返回至请求客户端,此时,Web页面已具备动态性和不可预测性,消除了因DOM结构统一性和页面属性静态性带来的爬虫风险。
可选地,在HTML页面的DOM结构中插入隐藏节点包括:获取HTML页面的DOM结构;在DOM结构中选择目标插入点位置;在目标插入点位置插入隐藏节点。
可选地,在DOM结构中选择目标插入点位置,包括:获取DOM结构中的候选插入点位置,候选插入点位置为改变指向DOM结构中的目的节点路径的位置;在候选插入点位置中随机选择一个作为目标插入点位置。
例如,XPath表达式“/html/body/div[3]/div[3]/div/h5”,此表达式是一条最终指向h5节点的路径,该路径由节点和谓语构成,谓语被嵌在[ ]中,表示选取该层级下的第几个此类节点。由路径匹配的语法可以看出,改变目标节点h5在此路径上的任意前置节点,都会改变指向该h5节点的路径,因此,插入点的选取应该是其先辈节点或同胞节点。对于任一隐藏节点的添加,其可选的插入点位置满足以下递归公式:
其中,s为当前节点及其前置兄节点的数量。
例如对于“/html/body/div[3]/div[3]/div/h5”,其可选的插入点位置如下所示:
可选地,在目标插入点位置插入隐藏节点包括:确定目标插入节点类型;在目标插入点位置插入目标插入节点类型的隐藏节点;
其中,插入点类型满足:插入目标插入节点类型的节点后DOM结构中的目的节点的匹配路径发生变化;以及插入目标插入节点类型的节点后HTML页面正常显示。
也就是说,在选定目标插入点后,目标插入节点类型的选择应该遵循以下两个原则:
插入该类型的节点后,目标节点的匹配路径应发生变化,原匹配路径失效。
插入该节点后,不影响整体代码的执行和页面的显示。
例如,满足以上两个原则的目标插入节点类型可以是目标插入点所在层级的主语节点,从而改变主语节点所在路径的谓语位置。
例如,在随机选取到上图的插入点6时,插入的节点类型选取主语节点<div>,插入后,目标节点的匹配路径变为“/html/body/div[3]/div[4]/div/h5”,而原匹配路径“/html/body/div[3]/div[3]/div/h5”则失效。
可选地,对HTML页面的静态属性进行加密,包括:对HTML页面的HTML代码、JavaScript脚本和/或层叠样式表CSS样式中的静态属性进行加密。其中,静态属性包括以下至少一项:页面ID、页面名称和页面等级。
由公知技术可知,爬虫程序还可以利用HTML页面上的静态属性(id/name/class)进行目标数据地定位、匹配和提取,为破坏这一特性,本文采用了静态属性动态加密的方法。通过对HTML代码、JavaScript脚本以及层叠样式表CSS样式中静态的页面属性进行加密处理,使每次响应的代码中的静态属性发生动态变化,从而达到网站的反爬效果。
可选地,对HTML页面的静态属性进行加密包括:采用AES加密算法,将HTML页面的静态属性中的明文P替换为密文C。其中,密文C是根据明文P、预设密钥K和随机序列R确定的。
可选地,密文C是密文头部Chead和密文尾部Ctail拼接得到的;其中,
密文头部Chead是采用动态密钥KR对明文P进行AES加密得到的,动态密钥KR是随机序列R和预设密钥K的密钥头部Khead拼接得到的;
密文尾部Ctail是采用随机序列R和预设密钥K的密钥尾部Ktail进行异或操作得到的。
本发明实施例采用基于AES(Advanced Encryption Standard)的加密算法对静态属性进行加密,作为对称密钥加密中最流行的算法之一,AES具有安全性高、运算速度快、资源消耗少等优点。同时,为保证每次加密结果的动态性,本发明实施例引入随机种子对AES算法进行改进,使同一属性的每次加密结果都不相同。本发明实施例的加密过程如下:
(1)抽取HTML页面中的静态属性(id/name/class)作为待加密的字段,记为P;
(2)将预设的密钥K进行平均切分,得到密钥的头部Khead和尾部Ktail;
K=Khead+Ktail
(3)生成随机序列R,并将Khead和R拼接得到动态密钥KR;
KR=Khead+R
(4)使用动态密钥KR,对字段P进行AES加密,得到密文头部Chead;
Chead=En(KR,P)
(5)将随机序列R和密钥的尾部Ktail进行异或操作,得到密文尾部Ctail;
(6)将密文头部Chead和密文尾部Ctail拼接得到最终的加密结果C;
C=Chead+Ctail
(7)将HTML、JavaScript和CSS中的明文P全部替换为密文C。
相应地,本发明实施例的解密过程如下:
(1)抽取HTML页面中动态加密的属性字段,记为密文C;
(2)将密文C进行切分处理,得到密文的头部Chead和尾部Ctail;
C=Chead+Ctail
(3)将预设的密钥K进行平均切分,得到密钥的头部Khead和尾部Ktail;
K=Khead+Ktail
(4)将密文的尾部Ctail和密钥的尾部Ktail进行异或操作,得到原随机序列R;
(5)将密钥的头部Khead和随机序列R拼接得到原动态密钥KR;
KR=Khead+R
(6)使用原动态密钥KR,对密文的头部Chead进行AES解密,得到原静态属性字段P;
P=De(KR,Chead)
将HTML、JavaScript和CSS中的密文C全部替换为明文P。
为系统性说明本发明实施例的反爬虫方法,如图3所示,该方法包括:
根据客户端请求,计算出应予响应的HTML页面;
在HTML页面中动态插入隐藏DOM节点;
动态加密HTML页面中的静态属性(id/name/class),同时加密JavaScript和CSS中的相应属性;
返回动态的HTML页面及其相关的JavaScript和CSS资源。
本发明实施例的反爬虫方法,在获取到超文本标记语言HTML页面的请求后,响应该请求,返回处理后的HTML页面;其中,处理后的HTML页面的文档对象化模型DOM结构中存在隐藏节点,和/或处理后的HTML页面存在加密的静态属性。这样动态插入隐藏的DOM节点,可改变相关节点的层级结构和相对位置,使每次响应的HTML页面的DOM结构都不相同,消除节点路径的静态性和可匹配性,即使利用模拟浏览器技术获取到页面的HTML代码,依然不能通过路径匹配表达式对节点进行定位,从而防范爬虫。另外,对HTML页面的静态属性进行动态加密,保证每次加密结果的动态性和不可预测性,这样可以将恶意爬虫限制在开发和分析阶段,从而达到主动的防爬效果。
以上介绍了本发明实施例的反爬虫方法的实施例,下面将结合附图对其对应的装置实施例作进一步说明。
如图4所示,本发明实施例提供了一种反爬虫装置,包括
获取模块410,用于获取超文本标记语言HTML页面的请求;
处理模块420,用于响应请求,返回处理后的HTML页面;其中,处理后的HTML页面的文档对象化模型DOM结构中存在隐藏节点,和/或处理后的HTML页面存在加密的静态属性。
可选地,处理模块420包括以下至少一项:
插入子模块,用于在HTML页面的DOM结构中插入隐藏节点;
解密子模块,用于对HTML页面的静态属性进行加密。
可选地,插入子模块包括:
获取单元,用于获取HTML页面的DOM结构;
选择单元,用于在DOM结构中选择目标插入点位置;
插入单元,用于在目标插入点位置插入隐藏节点。
可选地,选择单元包括:
获取子单元,用于获取DOM结构中的候选插入点位置,候选插入点位置为改变指向DOM结构中的目的节点路径的位置;
选择子单元,用于在候选插入点位置中随机选择一个作为目标插入点位置。
可选地,插入单元包括:
确定子单元,用于确定目标插入节点类型;
插入子单元,用于在目标插入点位置插入目标插入节点类型的隐藏节点;
其中,插入点类型满足:
插入目标插入节点类型的节点后DOM结构中的目的节点的匹配路径发生变化;
插入目标插入节点类型的节点后HTML页面正常显示。
可选地,加密模块包括:
第一加密子模块,用于对HTML页面的HTML代码、JavaScript脚本和/或层叠样式表CSS样式中的静态属性进行加密。
可选地,静态属性包括以下至少一项:页面ID、页面名称和页面等级。
可选地,加密模块包括:
第二加密子模块,用于采用AES加密算法,将HTML页面的静态属性中的明文P替换为密文C;
其中,密文C是根据明文P、预设密钥K和随机序列R确定的。
可选地,密文C是密文头部Chead和密文尾部Ctail拼接得到的;其中,
密文头部Chead是采用动态密钥KR对明文P进行AES加密得到的,动态密钥KR是随机序列R和预设密钥K的密钥头部Khead拼接得到的;
密文尾部Ctail是采用随机序列R和预设密钥K的密钥尾部Ktail进行异或操作得到的。
可选地,处理模块320包括:
返回子模块,用于返回处理后的HTML页面以及对应的JavaScript和CSS资源。
本发明实施例的反爬虫装置,在获取到超文本标记语言HTML页面的请求后,响应该请求,返回处理后的HTML页面;其中,处理后的HTML页面的文档对象化模型DOM结构中存在隐藏节点,和/或处理后的HTML页面存在加密的静态属性。这样动态插入隐藏的DOM节点,可改变相关节点的层级结构和相对位置,使每次响应的HTML页面的DOM结构都不相同,消除节点路径的静态性和可匹配性,即使利用模拟浏览器技术获取到页面的HTML代码,依然不能通过路径匹配表达式对节点进行定位,从而防范爬虫。另外,对HTML页面的静态属性进行动态加密,保证每次加密结果的动态性和不可预测性,这样可以将恶意爬虫限制在开发和分析阶段,从而达到主动的防爬效果。
本发明实施例的一种可读存储介质,其上存储有程序或指令,所述程序或指令被处理器执行时实现如上所述的反爬虫方法中的步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的反爬虫装置中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
本发明实施例中,模块可以用软件实现,以便由各种类型的处理器执行。举例来说,一个标识的可执行代码模块可以包括计算机指令的一个或多个物理或者逻辑块,举例来说,其可以被构建为对象、过程或函数。尽管如此,所标识模块的可执行代码无需物理地位于一起,而是可以包括存储在不同位里上的不同的指令,当这些指令逻辑上结合在一起时,其构成模块并且实现该模块的规定目的。
实际上,可执行代码模块可以是单条指令或者是许多条指令,并且甚至可以分布在多个不同的代码段上,分布在不同程序当中,以及跨越多个存储器设备分布。同样地,操作数据可以在模块内被识别,并且可以依照任何适当的形式实现并且被组织在任何适当类型的数据结构内。所述操作数据可以作为单个数据集被收集,或者可以分布在不同位置上(包括在不同存储设备上),并且至少部分地可以仅作为电子信号存在于系统或网络上。
在模块可以利用软件实现时,考虑到现有硬件工艺的水平,所以可以以软件实现的模块,在不考虑成本的情况下,本领域技术人员都可以搭建对应的硬件电路来实现对应的功能,所述硬件电路包括常规的超大规模集成(VLSI)电路或者门阵列以及诸如逻辑芯片、晶体管之类的现有半导体或者是其它分立的元件。模块还可以用可编程硬件设备,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等实现。
上述范例性实施例是参考该些附图来描述的,许多不同的形式和实施例是可行而不偏离本发明精神及教示,因此,本发明不应被建构成为在此所提出范例性实施例的限制。更确切地说,这些范例性实施例被提供以使得本发明会是完善又完整,且会将本发明范围传达给那些熟知此项技术的人士。在该些图式中,组件尺寸及相对尺寸也许基于清晰起见而被夸大。在此所使用的术语只是基于描述特定范例性实施例目的,并无意成为限制用。如在此所使用地,除非该内文清楚地另有所指,否则该单数形式“一”、“一个”和“该”是意欲将该些多个形式也纳入。会进一步了解到该些术语“包含”及/或“包括”在使用于本说明书时,表示所述特征、整数、步骤、操作、构件及/或组件的存在,但不排除一或更多其它特征、整数、步骤、操作、构件、组件及/或其族群的存在或增加。除非另有所示,陈述时,一值范围包含该范围的上下限及其间的任何子范围。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (21)
1.一种反爬虫方法,其特征在于,包括:
获取超文本标记语言HTML页面的请求;
响应所述请求,返回处理后的HTML页面;其中,所述处理后的HTML页面的文档对象化模型DOM结构中存在隐藏节点,和/或所述处理后的HTML页面存在加密的静态属性。
2.根据权利要求1所述的反爬虫方法,其特征在于,响应所述请求包括以下至少一项:
在所述HTML页面的DOM结构中插入隐藏节点;
对所述HTML页面的静态属性进行加密。
3.根据权利要求2所述的反爬虫方法,其特征在于,在所述HTML页面的DOM结构中插入隐藏节点,包括:
获取所述HTML页面的DOM结构;
在所述DOM结构中选择目标插入点位置;
在所述目标插入点位置插入隐藏节点。
4.根据权利要求3所述的反爬虫方法,其特征在于,在所述DOM结构中选择目标插入点位置,包括:
获取所述DOM结构中的候选插入点位置,所述候选插入点位置为改变指向所述DOM结构中的目的节点路径的位置;
在所述候选插入点位置中随机选择一个作为目标插入点位置。
5.根据权利要求3所述的反爬虫方法,其特征在于,在所述目标插入点位置插入隐藏节点,包括:
确定目标插入节点类型;
在所述目标插入点位置插入所述目标插入节点类型的隐藏节点;
其中,所述插入点类型满足:
插入所述目标插入节点类型的节点后所述DOM结构中的目的节点的匹配路径发生变化;
插入所述目标插入节点类型的节点后所述HTML页面正常显示。
6.根据权利要求2所述的反爬虫方法,其特征在于,对所述HTML页面的静态属性进行加密,包括:
对所述HTML页面的HTML代码、JavaScript脚本和/或层叠样式表CSS样式中的静态属性进行加密。
7.根据权利要求1、2或6所述的反爬虫方法,其特征在于,所述静态属性包括以下至少一项:页面ID、页面名称和页面等级。
8.根据权利要求1、2或6所述的反爬虫方法,其特征在于,对所述HTML页面的静态属性进行加密,包括:
采用AES加密算法,将所述HTML页面的静态属性中的明文P替换为密文C;
其中,所述密文C是根据所述明文P、预设密钥K和随机序列R确定的。
9.根据权利要求8所述的反爬虫方法,其特征在于,所述密文C是密文头部Chead和密文尾部Ctail拼接得到的;其中,
所述密文头部Chead是采用动态密钥KR对所述明文P进行AES加密得到的,所述动态密钥KR是所述随机序列R和所述预设密钥K的密钥头部Khead拼接得到的;
所述密文尾部Ctail是采用所述随机序列R和所述预设密钥K的密钥尾部Ktail进行异或操作得到的。
10.根据权利要求9所述的反爬虫方法,其特征在于,返回处理后的HTML页面,包括:
返回处理后的HTML页面以及对应的JavaScript和CSS资源。
11.一种反爬虫装置,其特征在于,包括
获取模块,用于获取超文本标记语言HTML页面的请求;
处理模块,用于响应所述请求,返回处理后的HTML页面;其中,所述处理后的HTML页面的文档对象化模型DOM结构中存在隐藏节点,和/或所述处理后的HTML页面存在加密的静态属性。
12.根据权利要求11所述的反爬虫装置,其特征在于,所述处理模块包括以下至少一项:
插入子模块,用于在所述HTML页面的DOM结构中插入隐藏节点;
解密子模块,用于对所述HTML页面的静态属性进行加密。
13.根据权利要求12所述的反爬虫装置,其特征在于,所述插入子模块包括:
获取单元,用于获取所述HTML页面的DOM结构;
选择单元,用于在所述DOM结构中选择目标插入点位置;
插入单元,用于在所述目标插入点位置插入隐藏节点。
14.根据权利要求13所述的反爬虫装置,其特征在于,所述选择单元包括:
获取子单元,用于获取所述DOM结构中的候选插入点位置,所述候选插入点位置为改变指向所述DOM结构中的目的节点路径的位置;
选择子单元,用于在所述候选插入点位置中随机选择一个作为目标插入点位置。
15.根据权利要求13所述的反爬虫装置,其特征在于,所述插入单元包括:
确定子单元,用于确定目标插入节点类型;
插入子单元,用于在所述目标插入点位置插入所述目标插入节点类型的隐藏节点;
其中,所述插入点类型满足:
插入所述目标插入节点类型的节点后所述DOM结构中的目的节点的匹配路径发生变化;
插入所述目标插入节点类型的节点后所述HTML页面正常显示。
16.根据权利要求12所述的反爬虫装置,其特征在于,所述加密模块包括:
第一加密子模块,用于对所述HTML页面的HTML代码、JavaScript脚本和/或层叠样式表CSS样式中的静态属性进行加密。
17.根据权利要求11、12或16所述的反爬虫装置,其特征在于,所述静态属性包括以下至少一项:页面ID、页面名称和页面等级。
18.根据权利要求11、12或16所述的反爬虫装置,其特征在于,所述加密模块包括:
第二加密子模块,用于采用AES加密算法,将所述HTML页面的静态属性中的明文P替换为密文C;
其中,所述密文C是根据所述明文P、预设密钥K和随机序列R确定的。
19.根据权利要求18所述的反爬虫装置,其特征在于,所述密文C是密文头部Chead和密文尾部Ctail拼接得到的;其中,
所述密文头部Chead是采用动态密钥KR对所述明文P进行AES加密得到的,所述动态密钥KR是所述随机序列R和所述预设密钥K的密钥头部Khead拼接得到的;
所述密文尾部Ctail是采用所述随机序列R和所述预设密钥K的密钥尾部Ktail进行异或操作得到的。
20.根据权利要求19所述的反爬虫装置,其特征在于,所述处理模块包括:
返回子模块,用于返回处理后的HTML页面以及对应的JavaScript和CSS资源。
21.一种可读存储介质,其上存储有程序或指令,其特征在于,所述程序或指令被处理器执行时实现如权利要求1-10任一项所述的反爬虫方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111588944.1A CN116346377A (zh) | 2021-12-23 | 2021-12-23 | 一种反爬虫方法、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111588944.1A CN116346377A (zh) | 2021-12-23 | 2021-12-23 | 一种反爬虫方法、装置及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116346377A true CN116346377A (zh) | 2023-06-27 |
Family
ID=86877631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111588944.1A Pending CN116346377A (zh) | 2021-12-23 | 2021-12-23 | 一种反爬虫方法、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116346377A (zh) |
-
2021
- 2021-12-23 CN CN202111588944.1A patent/CN116346377A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Rao et al. | Detection of phishing websites using an efficient feature-based machine learning framework | |
Aljofey et al. | An effective detection approach for phishing websites using URL and HTML features | |
Rao et al. | Jail-Phish: An improved search engine based phishing detection system | |
Borgolte et al. | Delta: automatic identification of unknown web-based infection campaigns | |
US10454969B2 (en) | Automatic generation of low-interaction honeypots | |
US10027628B2 (en) | Client/server security by an intermediary rendering modified in-memory objects | |
US9712560B2 (en) | Web page and web browser protection against malicious injections | |
US8112703B2 (en) | Aggregate tag views of website information | |
Xiang et al. | Cantina+ a feature-rich machine learning framework for detecting phishing web sites | |
US8595370B2 (en) | Providing a reliable trust indicator for content | |
Altay et al. | Context-sensitive and keyword density-based supervised machine learning techniques for malicious webpage detection | |
US10346483B2 (en) | System and method for search engine optimization | |
KR20110009675A (ko) | 웹 브라우저 상의 광고 표시를 선택적으로 보장하는 방법 및 시스템 | |
Aminuddin et al. | The rise of website fingerprinting on Tor: Analysis on techniques and assumptions | |
McGahagan et al. | A comprehensive evaluation of webpage content features for detecting malicious websites | |
US11914700B2 (en) | Reducing remote procedure calls for multimedia content delivery | |
Bird et al. | Actions speak louder than words: Semi-supervised learning for browser fingerprinting detection | |
Li et al. | Application of hidden Markov model in SQL injection detection | |
Liu et al. | Knowledge Expansion and Counterfactual Interaction for {Reference-Based} Phishing Detection | |
Borgolte et al. | Relevant change detection: a framework for the precise extraction of modified and novel web-based content as a filtering technique for analysis engines | |
Tiwari et al. | A novel watermarking scheme for secure relational databases | |
WO2020063448A1 (zh) | 一种信息拦截的方法、装置及终端 | |
Yang et al. | Search & catch: Detecting promotion infection in the underground through search engines | |
CN116346377A (zh) | 一种反爬虫方法、装置及介质 | |
CN114282097A (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 |