CN105577684B - 防爬虫抓取的方法、服务端、客户端和系统 - Google Patents

防爬虫抓取的方法、服务端、客户端和系统 Download PDF

Info

Publication number
CN105577684B
CN105577684B CN201610048647.0A CN201610048647A CN105577684B CN 105577684 B CN105577684 B CN 105577684B CN 201610048647 A CN201610048647 A CN 201610048647A CN 105577684 B CN105577684 B CN 105577684B
Authority
CN
China
Prior art keywords
data
block number
segmentation block
key
module
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
Application number
CN201610048647.0A
Other languages
English (en)
Other versions
CN105577684A (zh
Inventor
吴凯
王海旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201610048647.0A priority Critical patent/CN105577684B/zh
Publication of CN105577684A publication Critical patent/CN105577684A/zh
Application granted granted Critical
Publication of CN105577684B publication Critical patent/CN105577684B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请公开一种防爬虫抓取的方法、服务端、客户端和系统,该方法包括:对原始数据进行分割处理得到多个分割块数据,并以key/value形式存储每个分割块数据的位置/数值信息;根据分割块数据的位置/数值信息从多个位置中进行随机筛选,并记录筛选出的若干个位置相对应的key/value值;对筛选出的若干个位置的分割块数据做处理得到混淆数据;将记录的若干个key/value值进行拼接,得到字符串。对原始数据进行分割、填充、拼接等处理,数据以特殊的格式发送,客户端对切割后数据以CSS浮层覆盖混淆数据,使用户看到原始数据。提高爬虫抓取的门槛,降低重要信息被获取的风险,能够防止重要信息被直接抓取或被OCR识别。

Description

防爬虫抓取的方法、服务端、客户端和系统
技术领域
本公开总体涉及数据安全技术领域,具体而言,涉及一种防爬虫抓取的方法、服务端、客户端和系统。
背景技术
网络爬虫(简称爬虫)是一种获取网页内容的程序,爬虫通过网页的链接地址来寻找网页。目前爬虫技术已经很成熟,通过设定的规则,爬虫可以轻易地抓取页面源代码中一些重要信息,例如商品价格、商家电话号码、商品评分或是商品关键参数等等。
目前,防止爬虫的抓取一般有两种方法:重要信息图片化处理和请求屏蔽。图片化处理就是将源代码中明文显示的重要信息替换成图片的形式进行展示,但图片化处理只能屏蔽掉普通爬虫(即只分析源代码的爬虫)的抓取。爬虫通过抓取图片后,进行OCR识别,依然可以获取图片内的信息。请求屏蔽具体为:分析HTTP(Hyper Text Transfer Protocol,超文本传输协议)请求、通过user agent(用户代理)、请求IP等信息,针对爬虫的特征进行识别,如果识别出该请求为爬虫的请求,则将其进行屏蔽。但是,请求屏蔽只能识别到正规网络爬虫(即提供user agent信息的爬虫),对于很多模拟人工访问的爬虫则不能被识别。另外,根据IP等信息进行识别会出现误杀或是漏杀的情况,屏蔽的效果会存在较大误差。
因此,需要一种新的防爬虫抓取的方法、服务端、客户端和系统。
在所述背景技术部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开提供一种防爬虫抓取的方法、服务端、客户端和系统,基于CSS防止重要信息被直接抓取或被OCR识别,降低重要信息被泄露的风险。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一方面,提供一种防爬虫抓取的方法,包括:
对原始数据进行分割处理得到多个分割块数据,并以key/value形式存储每个所述分割块数据的位置/数值信息;
根据所述分割块数据的位置/数值信息从多个位置中进行随机筛选,并记录筛选出的若干个位置相对应的key/value值;
对筛选出的所述若干个位置的分割块数据做混淆处理得到混淆数据;
将记录的若干个key/value值进行拼接,得到字符串。
根据本公开的一实施方式,对所述原始数据进行分割处理之前还包括:
按照所述原始数据的字符进行规范化处理,每个字符占用固定宽度的像素,其中每个字符占用10个像素。
根据本公开的一实施方式,所述对筛选出的所述若干个位置的分割块数据做混淆处理包括:
对筛选出的所述若干个位置填充随机数据;
或对筛选出的所述若干个位置的分割块数据以特殊字符代替。
根据本公开的一实施方式,得到混淆数据之后还包括:
对所述混淆数据进行图片化处理,并生成相应的图片地址。
根据本公开的一实施方式,所述将记录的若干个key/value值进行拼接的步骤包括:
对所述若干个key/value值以约定字符进行拼接,得到字符串,并在拼接过程中,加入约定密钥进行加密,得到加密串。
根据本公开的一实施方式,所述方法还包括:
提供加密数据的调用接口,所述调用接口返回的数据格式为所述图片地址与所述字符串或所述加密串以约定属性值拼接。
根据本公开的另一方面,还提供一种用于防爬虫抓取的服务端,包括:
分割模块,用于对原始数据进行分割处理得到多个分割块数据,并以key/value形式存储每个所述分割块数据的位置/数值信息;
筛选模块,用于根据所述分割块数据的位置/数值信息从多个位置中进行随机筛选,并记录筛选出的若干个位置相对应的key/value值;
数据混淆模块,用于对筛选出的所述若干个位置的分割块数据做混淆处理得到混淆数据;以及
拼接模块,用于将记录的若干个key/value值进行拼接,得到字符串。
根据本公开的另一方面,还提供一种防爬虫抓取的方法,包括:
获取返回数据,所述返回数据的数据格式为图片地址与字符串以约定属性值拼接;
将所述字符串切割成若干个key/value值;
所述若干个key/value值通过控制CSS以浮层形式显示在根据所述图片地址获取的图片上,所述图片为对混淆数据进行图片化处理得到,同时还生成与所述图片相应的图片地址。
根据本公开的一实施方式,所述返回数据的数据格式为图片地址与加密串以约定属性值拼接,所述方法还包括:
对所述加密串进行解密,得到字符串,再以约定字符进行对所述字符串进行切割,得到若干个key/value值。
根据本公开的另一方面,还提供一种用于防爬虫抓取的客户端,包括:
调用模块,用于获取返回数据,所述返回数据的数据格式为图片地址与字符串以约定属性值拼接;
切割模块,用于将所述字符串切割成若干个key/value值;以及
显示模块,用于所述若干个key/value值通过控制CSS以浮层形式显示在根据所述图片地址获取的图片上,所述图片为对混淆数据进行图片化处理得到,同时还生成与所述图片相应的图片地址。
根据本公开的另一方面,还提供一种防爬虫抓取的方法,包括:
对原始数据进行分割处理得到多个分割块数据;
将每个所述分割块数据放置于预设标签中;
给所述多个预设标签分配不同的属性,并对各个所述预设标签的属性进行记录。
根据本公开的一实施方式,所述方法还包括:
在所述多个分割块数据中插入多个随机数据,得到混淆数据,并所述混淆数据分别放置于所述预设标签中。
根据本公开的一实施方式,将每个所述分割块数据放置于预设标签中之后,所述方法还包括:
在所述多个分割块数据放置的预设标签中随机插入多个随机数据的预设标签,得到混淆数据。
根据本公开的一实施方式,所述方法还包括:
对接收的数据根据记录的各个所述预设标签的属性通过CSS控制所述预设标签中所述分割块数据的显示或隐藏,完成所述数据的显示。
根据本公开的另一方面,还提供一种用于防爬虫抓取的系统,包括服务端和客户端;
所述服务端包括:
分割模块,用于对原始数据进行分割处理得到多个分割块数据;
放置模块,用于将每个所述分割块数据放置于预设标签中;以及
分配模块,用于给所述多个预设标签分配不同的属性,并对各个所述预设标签的属性进行记录;
所述客户端包括:
接收模块,用于接收所述服务端的数据;以及
显示模块,用于对接收的数据根据记录的各个所述预设标签的属性通过CSS控制所述预设标签中所述分割块数据的显示或隐藏,完成所述数据的显示。
根据本公开的技术方案,可实现以下技术效果:
在服务端对原始数据进行分割、填充、拼接等一系列处理,最终将数据以特殊的格式(如图片地址+字符串拼接)发送给客户端,客户端对接收的数据进行切割等处理,以CSS浮层覆盖之前在服务端为了防止抓取而填充的混淆数据,从而使用户看到原始数据。该系统能够在更大程度上提高爬虫抓取的门槛,降低重要信息被获取的风险,能够防止重要信息被直接抓取或被OCR识别。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
通过参照附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。
图1示意性示出根据本公开示例实施方式的用于防爬虫抓取的系统。
图2示意性示出根据本公开示例实施方式的用于防爬虫抓取的服务端。
图3示意性示出根据本公开示例实施方式中服务端防爬虫抓取的方法的流程图。
图4示意性示出根据本公开示例另一实施方式中服务端防爬虫抓取的方法的流程图。
图5示意性示出根据本公开示例实施方式的用于防爬虫抓取的客户端。
图6示意性示出根据本公开示例实施方式中客户端防爬虫抓取的方法的流程图。
图7示意性示出根据本公开示例另一实施方式中客户端防爬虫抓取的方法的流程图。
图8示出根据本公开示例另一实施方式的用于防爬虫抓取的系统。
图9示出根据本公开示例实施方式的防爬虫抓取的方法的流程图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现、材料或者操作以避免喧宾夺主而使得本公开的各方面变得模糊。
附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图1示意性示出根据本公开示例实施方式的用于防爬虫抓取的系统100,包括服务端110和客户端120。其中服务端110主要用于对原始数据(一般多为重要信息,例如价格、电话、评分等信息)进行加密。客户端120用于对服务端发送的数据进行解密和显示,相应的,如图1所示,客户端120中包括解密模块124和显示模块123,最终将正确的原始数据展示给用户。
需要说明的是,此处服务端110的加密属于广义的加密,即并不是仅指一般意义上通过加密算法而进行的加密操作,而是表示对原始数据进行分割、填充、拼接等一系列处理,最终将数据以特殊的格式(如图片地址+字符串拼接)发送给客户端120,使得用户可以通过访问网站页面,页面进一步通过接口调用数据,使得用户可以在客户端120看到原始数据。
图2示意性示出根据本公开示例实施方式的用于防爬虫抓取的服务端110,包括:分割模块111、筛选模块112、数据混淆模块113和拼接模块114。
分割模块111用于对原始数据进行分割处理得到多个分割块数据,并以key/value形式存储每个分割块数据的位置/数值信息。筛选模块112用于根据分割块数据的位置/数值信息从多个位置中进行随机筛选,并记录筛选出的若干个位置相对应的key/value值。数据混淆模块113用于对筛选出的若干个位置的分割块数据做混淆处理得到混淆数据。拼接模块114用于将记录的若干个key/value值进行拼接,得到字符串。
如图2所示,服务端110中还包括规范化处理模块115,用于按照原始数据的字符进行规范化处理,每个字符占用固定宽度的像素。在本实施例中,每个字符可以占用10个像素。在其他实施例中,还可以设定每个字符占用5个、8个字符等等。通过规范化处理模块115预先对原始数据进行规范化处理,使得每个字符占用固定宽度的像素,以便于之后分割模块111对原始数据进行分割。
数据混淆模块113对通过筛选模块112筛选出的若干个位置的分割块数据做混淆处理,可选的,混淆处理可以为:对筛选出的若干个位置填充随机数据;混淆处理还可以为:对筛选出的若干个位置的分割块数据以特殊字符代替,在本实施例中特殊字符可以选用“*”、“#”、“%”等字符。因此,数据混淆模块114在选出的位置上填充随机数据或者以特殊字符代替,得到混淆数据。
如图2所示,服务端110中还包括图片化处理模块116,用于对数据混淆模块113做混淆处理得到的混淆数据进行图片化处理,并生成相应的图片地址。在本实施例中,生成的图片地址可以是src地址,例如<img src=”…/123456.jpg>”或<img src=”…/123456.png>”,均可表示一个图片的图片地址。
服务端110中的拼接模块114,用于对筛选模块112筛选出的若干个位置相对应的key/value值以约定字符进行拼接,以得到字符串。其中约定字符可以为下划线、斜线、反斜线等特殊字符,通过约定的特殊字符将各个key/value值拼接起来构成字符串。
直接通过拼接得到的字符串还存在一定的风险,由于原始数据直接暴露在html代码中,如果被别有用心的人分析之后找到规律,则可能推理得到原始数据,仍然有被抓取和获知的可能。在本实施例中,为了进一步降低被抓取的风险,还可以进行加密,此处的加密为狭义的加密,就是通过密钥结合加密算法进行加密,得到加密的字符串,即为加密串。如图2所示,服务端110中还包括加密模块117,用于在以约定字符串进行拼接的过程中,加入约定密钥进行加密,得到加密串。在本实施例中,加密模块117采用可逆加密算法进行加密,可逆加密算法可以采用常用的RSA或DES等加密算法。
如图2所示,服务端110中还包括调用接口模块118,用于提供加密数据的调用接口,调用接口返回的数据格式为图片地址与字符串或加密串以约定属性值拼接。其中约定属性值可以为rkey属性,即通过将图片化处理模块116得到的图片地址与拼接模块114得到的字符串或者是加密模块117得到的加密串以rkey属性拼接在一起,得到最终的返回数据为:
<img src=”.../123456.png”rkey=’vCeKk7sUlvFcRCPIr3R0DCmSQM’/>
如果返回的数据为字符串,则rkey属性中的值为拼接之后没有经过加密的字符串;如果返回的数据为加密串,则rkey属性中的值为拼接之后经过加密的加密串。
根据上述,图3和图4示意性示出根据本公开示例实施方式中服务端110防爬虫抓取的方法的流程图。
如图3和图4所示,在步骤S11中,对原始数据进行分割处理得到多个分割块数据,并以key/value形式存储多个分割块数据的位置/数值信息。
在步骤S12中,根据分割块数据的位置/数值信息从多个位置中进行随机筛选,并记录筛选出的若干个位置相对应的key/value值。
在步骤S13中,对筛选出的若干个位置的分割块数据做混淆处理得到混淆数据。
在步骤S14中,将记录的若干个key/value值进行拼接,得到字符串。
参见图2所示的流程图可知,本实施例提供的方法通过对原始数据进行分割、筛选、混淆处理以及拼接,显示过程中需要经过图片化处理以及CSS浮层控制才能最终显示出原始数据,可以防止爬虫抓取。其中CSS是指层叠样式表(Cascading Style Sheets),将网页的多重样式层叠为一个,并通常保存在CSS文件中。
如图3所示,在本实施例中,在步骤S11之前还包括:
步骤S10:按照原始数据的字符进行规范化处理,每个字符占用固定宽度的像素。在本实施例中,每个字符可以占用10个像素。在其他实施例中,还可以设定每个字符占用5个、8个字符等等。通过预先对原始数据进行规范化处理,使得每个字符占用固定宽度的像素,以便于之后对原始数据进行分割。
在步骤S13中,对筛选出的若干个位置的分割块数据做混淆处理可以为:对筛选出的若干个位置填充随机数据;还可以为:对筛选出的若干个位置的分割块数据以特殊字符代替。在本实施例中特殊字符可以选用“*”、“#”、“%”等字符。因此,步骤S13在选出的位置上填充随机数据或者以特殊字符代替,得到混淆数据。
在本实施例中,步骤S13之后,还可以包括:
步骤S15:对混淆数据进行图片化处理,并生成相应的图片地址。
在本实施例中,生成的图片地址可以是src地址,例如<img src=”…/123456.jpg>”或<img src=”…/123456.png>”,均可表示一个图片的图片地址。
在步骤S14中,对若干个key/value值以约定字符进行拼接,得到字符串。其中约定字符可以为下划线、斜线、反斜线等特殊字符,通过约定的特殊字符将各个key/value值拼接起来构成字符串。
在本实施例中,步骤S14中,除了直接将key/value值以约定字符进行拼接之外,还可以在以约定字符串进行拼接的过程中,加入约定密钥进行加密,得到加密串。直接通过拼接得到的字符串还存在一定的风险,由于原始数据直接暴露在html代码中,如果被别有用心的人分析之后找到规律,则可能推理得到原始数据,仍然有被抓取和获知的可能。在本实施例中,为了进一步降低被抓取的风险,还可以进行加密,此处的加密为狭义的加密,就是通过密钥结合加密算法进行加密,得到加密的字符串,即为加密串。采用可逆加密算法进行加密,可逆加密算法可以采用常用的RSA或DES等加密算法。
如图4所示,在本实施例中,在步骤S14之后还包括:
步骤S16:提供加密数据的调用接口,调用接口返回的数据格式为图片地址与字符串或加密串以约定属性值拼接。
其中约定属性值可以为rkey属性,即通过将图片化处理模块116得到的图片地址与拼接模块114得到的字符串或者是加密模块117得到的加密串以rkey属性拼接在一起,得到最终的返回数据为:
<img src=”.../123456.png”rkey=’vCeKk7sUlvFcRCPIr3R0DCmSQM’/>
如果返回的数据为字符串,则rkey属性中的值为拼接之后没有经过加密的字符串;如果返回的数据为加密串,则rkey属性中的值为拼接之后经过加密的加密串。
该方法可例如利用如图2所示的防爬虫抓取的服务端实现,但本公开不限于此。需要注意的是,图3和图4仅是根据本公开示例实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,图3和图4所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
图5示意性示出根据本公开示例实施方式的用于防爬虫抓取的客户端120,包括:调用模块121、切割模块122和显示模块123。
调用模块121用于获取返回数据,返回数据的数据格式为图片地址与字符串以约定属性值拼接。切割模块122用于将字符串切割成若干个key/value值,显示模块123用于若干个key/value值通过控制CSS以浮层形式显示在根据图片地址获取的图片上。
如果返回数据的数据格式中包含的并不是一般的字符串,而是经过加密算法处理的加密串,则在客户端120中还需要先进行解密。如图4所示,客户端120中还包括解密模块124,用于对加密串进行解密,得到字符串。由于客户端120中显示模块123和解密模块124均是以JS(JavaScript的简称)实现的,所以页面需要引用对应的JS文件,客户端120通过JS文件读取页面图片对应的rkey属性,将返回数据传递给解密模块124,通过以约定的密钥进行解密,之后再将解密得到的字符串传递给切割模块122,其中解密是所采用的密钥与加密是采用的密钥相同。
切割模块122以约定字符进行对字符串进行切割,得到若干个key/value值。其中约定字符可以为下划线、斜线、反斜线等特殊字符,通过在服务端110以约定的特殊字符将各个key/value值拼接起来构成字符串,key/value值中同时记录了切割后每个分割块数据的位置信息和数值信息。
显示模块123在显示过程中以固定宽度的像素(例如10个像素宽度)通过控制CSS将key/value值以浮层形式显示在图片上,覆盖住之前填充的混淆数据(也就是图片形式的混淆数据),使得用户能够看到原始数据。
根据上述以及图5所示的客户端120,图6和图7示意性示出根据本公开示例实施方式中客户端120防爬虫抓取的方法的流程图。
如图6所示,在步骤S21中,获取返回数据,返回数据的数据格式为图片地址与字符串以约定属性值拼接。其中约定属性值可以为rkey属性,即通过将图片化处理得到的图片地址与拼接得到的字符串或者是加密得到的加密串以rkey属性拼接在一起,返回数据为:
<img src=”.../123456.png”rkey=’vCeKk7sUlvFcRCPIr3R0DCmSQM’/>
如果返回的数据为字符串,则rkey属性中的值为拼接之后没有经过加密的字符串;如果返回的数据为加密串,则rkey属性中的值为拼接之后经过加密的加密串。
如图7所示,在本实施例中,分割块数据为对原始数据进行分割处理得到,对原始数据进行分割处理之前还包括:
按照原始数据的字符进行规范化处理,每个字符占用固定宽度的像素。每个字符可以占用10个像素,还可以根据实际情况设定每个字符占用5个、8个字符等等。。
如图6所示,在步骤S22中,将字符串切割成若干个key/value值。切割时仍然是以拼接时约定的字符作为标识进行切割,以得到若干个key/value值。在本实施例中,若干个key/value值是通过控制CSS以浮层形式显示在根据图片地址获取的图片上。其中图片为对混淆数据进行图片化处理得到,同时还生成与图片相应的图片地址。
步骤S21中,所获得的返回数据的数据格式除了可以为图片地址与字符串拼接之外,还可以为图片地址与加密串以约定属性值拼接。如图7所示,在步骤S21’中,获取返回数据,返回数据的数据格式为图片地址与加密串以约定属性值拼接。
如果返回数据中包含的是加密串,则将字符串切割成若干个key/value值之前,还包括:
步骤S24:对加密串进行解密,得到字符串。加密串为采用可逆加密算法对字符串进行加密得到,解密过程中仍以相同的密钥进行解密。
在本实施例中,步骤S22中以约定字符进行对字符串进行切割,得到若干个key/value值。其中约定字符可以为下划线、斜线、反斜线等特殊字符,通过在服务端110以约定的特殊字符将各个key/value值拼接起来构成字符串,key/value值中同时记录了切割后每个分割块数据的位置信息和数值信息。
在本实施例中,混淆数据为对从多个位置中筛选出的若干个位置的分割块数据做混淆处理得到,其中的混淆处理可以为:对筛选出的若干个位置填充随机数据;还可以为:或对筛选出的若干个位置的分割块数据以特殊字符代替。
如图6和图7所示,在步骤S23中,以每个字符占用固定宽度控制CSS以浮层形式显示在根据图片地址获取的图片上。
通过本实施例提供的系统,在服务端110对原始数据进行分割、填充、拼接等一系列处理,最终将数据以特殊的格式(如图片地址+字符串拼接)发送给客户端,客户端120对接收的数据进行切割等处理,以CSS浮层覆盖之前在服务端为了防止抓取而填充的混淆数据,从而使用户看到原始数据。该系统能够在更大程度上提高爬虫抓取的门槛,降低重要信息被获取的风险,能够防止重要信息被直接抓取或被OCR识别。
应清楚地理解,本公开描述了如何形成和使用特定示例,但本公开的原理不限于这些示例的任何细节。相反,基于本公开公开的内容的教导,这些原理能够应用于许多其它实施方式。
图8也示出根据本公开示例实施方式的用于防爬虫抓取的系统800。与图1所示的系统100相同,且图8中系统与图1所示的系统均是由服务端和客户端组成的基本结构相同。为简洁起见,相同的部分此处不再赘述。不同之处在于,图1中示的系统是基于图片化处理和CSS浮层控制实现防爬虫抓取的,图8所示的系统是通过CSS控制字符的显示与隐藏来实现屏蔽抓取。
如图8所示,系统800中的服务端810包括:分割模块811、放置模块812和分配模块813。
分割模块811用于对原始数据进行分割处理得到多个分割块数据。分割之前也可以对原始数据先进行一定的规范化处理,方法和过程与图1所示的规范化处理模块相同,此处不再赘述。
放置模块812用于将每个分割块数据放置于预设标签中。在本实施例中,预设标签可以为span标签,由于span标签本身就是用来控制行内元素的,自带换行功能,而且没有固定的样式,所以最适合用于本实施例中。除了span标签之外,预设标签还可以是div标签等其他标签,但是由于这些标签不是用来控制行内元素的,例如div标签是用来控制块级元素的,不能自动换行,还需要额外的对样式进行设置。与div标签相类似的标签包括但不限于p标签、i标签、em标签等等。
分配模块813用于给多个预设标签分配不同的属性,并对各个预设标签的属性进行记录。在本实施例中,所用到的属性可以是id属性或者class属性,均可以对标签的演示进行设置。不同之处在于,id属性具有唯一性,只能使用一次。
在通过CSS控制字符显示与隐藏来实现屏蔽抓取的实施例中,还需要对原始数据进行混淆处理,可以通过上述数据混淆模块814实现,如图8所示,系统800中包括服务端810和客户端820,服务端810包括分割模块811、放置模块812、分配模块813和数据混淆模块814。混淆模块814可以用于在多个分割块数据中插入多个随机数据,得到混淆数据,并将混淆数据也分别放置于预设标签中。数据混淆模块814还可以用于在多个分割块数据放置的预设标签中随机插入多个随机数据的预设标签,得到混淆数据。
客户端820包括接收模块821和显示模块822,接收模块821用于接收服务端810的数据,显示模块822用于对接收的数据根据记录的各个预设标签的属性通过CSS控制预设标签中分割块数据的显示或隐藏,完成数据的显示。最终使用户能够通过显示模块看到原始数据,而如果有爬虫抓取的话则爬虫在网页页面上也只能抓取到混淆数据,从而可以避免重要信息被直接抓取或者OCR识别的风险。
图9示出根据本公开示例实施方式的防爬虫抓取的方法的流程图。
如图9所示,在步骤S31中,对原始数据进行分割处理得到多个分割块数据。对原始数据进行分割之前,还包括对原始数据进行规范化处理,每个字符占用固定宽度的像素。在本实施例中,每个字符可以占用10个像素。在其他实施例中,还可以设定每个字符占用5个、8个字符等等。
在步骤S32中,将每个分割块数据放置于预设标签中。在本实施例中,预设标签可以为span标签。除了span标签之外,预设标签还可以是div标签等其他标签,但是由于这些标签不是用来控制行内元素的,例如div标签是用来控制块级元素的,不能自动换行,还需要额外的对样式进行设置。与div标签相类似的标签包括但不限于p标签、i标签、em标签等等。
在步骤S33中,给多个预设标签分配不同的属性,并对各个预设标签的属性进行记录。在本实施例中,所用到的属性可以是id属性或者class属性,均可以对标签的演示进行设置。不同之处在于,id属性具有唯一性,只能使用一次。
在步骤S34中,对接收的数据根据记录的各个预设标签的属性通过CSS控制预设标签中分割块数据的显示或隐藏。通常,可以通过JS任意设置CSS,从而通过CSS来控制字符的显示和隐藏,完成数据的显示。
另外,在本实施例中,为实现数据混淆的效果,可以在多个分割块数据中插入多个随机数据,得到混淆数据,并混淆数据分别放置于预设标签中;还可以是每个分割块数据放置于预设标签中之后,在多个分割块数据放置的预设标签中随机插入多个随机数据的预设标签,得到混淆数据。
该方法可例如利用如图9所示的系统实现,但本公开不限于此。需要注意的是,图9仅是根据本公开示例实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,图9所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
以上具体地示出和描述了本公开的示例性实施方式。应可理解的是,本公开不限于这里描述的详细结构、设置方式或实现方法;相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。

Claims (16)

1.一种防爬虫抓取的方法,其特征在于,包括:
对原始数据进行分割处理得到多个分割块数据,并以key/value形式存储每个所述分割块数据的位置/数值信息;
根据所述分割块数据的位置/数值信息从多个位置中进行随机筛选,并记录筛选出的若干个位置相对应的key/value值;
对筛选出的所述若干个位置的分割块数据做混淆处理得到混淆数据;
将记录的若干个key/value值进行拼接,得到字符串;
对所述混淆数据进行图片化处理,并生成相应的图片地址;
将所述图片地址与所述字符串进行拼接,得到最终返回的字符串。
2.根据权利要求1所述的方法,其特征在于,对所述原始数据进行分割处理之前还包括:
按照所述原始数据的字符进行规范化处理,每个字符占用固定宽度的像素,其中每个字符占用10个像素。
3.根据权利要求1所述的方法,其特征在于,所述对筛选出的所述若干个位置的分割块数据做混淆处理包括:
对筛选出的所述若干个位置填充随机数据;
或对筛选出的所述若干个位置的分割块数据以特殊字符代替。
4.根据权利要求1所述的方法,其特征在于,所述将记录的若干个key/value值进行拼接的步骤包括:
对所述若干个key/value值以约定字符进行拼接,得到字符串,并且在拼接过程中,加入约定密钥进行加密,得到加密串。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
提供加密数据的调用接口,所述调用接口返回的数据格式为所述图片地址与所述字符串或所述加密串以约定属性值拼接。
6.一种用于防爬虫抓取的服务端,其特征在于,包括:
分割模块,用于对原始数据进行分割处理得到多个分割块数据,并以key/value形式存储每个所述分割块数据的位置/数值信息;
筛选模块,用于根据所述分割块数据的位置/数值信息从多个位置中进行随机筛选,并记录筛选出的若干个位置相对应的key/value值;
数据混淆模块,用于对筛选出的所述若干个位置的分割块数据做混淆处理得到混淆数据;
图片化处理模块,用于对所述混淆数据进行图片化处理,并生成相应的图片地址;以及
拼接模块,用于将记录的若干个key/value值进行拼接,得到字符串;以及将所述图片地址与所述字符串进行拼接,得到最终返回的字符串。
7.一种防爬虫抓取的方法,其特征在于,包括:
获取返回数据,所述返回数据的数据格式为图片地址与字符串以约定属性值拼接;
将所述字符串切割成若干个key/value值;
所述若干个key/value值通过控制CSS以浮层形式显示在根据所述图片地址获取的图片上,所述图片为对混淆数据进行图片化处理得到,同时还生成与所述图片相应的图片地址。
8.根据权利要求7所述的方法,其特征在于,所述返回数据的数据格式为图片地址与加密串以约定属性值拼接,所述方法还包括:
对所述加密串进行解密,得到字符串,再以约定字符进行对所述字符串进行切割,得到若干个key/value值。
9.一种用于防爬虫抓取的客户端,其特征在于,包括:
调用模块,用于获取返回数据,所述返回数据的数据格式为图片地址与字符串以约定属性值拼接;
切割模块,用于将所述字符串切割成若干个key/value值;以及
显示模块,用于所述若干个key/value值通过控制CSS以浮层形式显示在根据所述图片地址获取的图片上,所述图片为对混淆数据进行图片化处理得到,同时还生成与所述图片相应的图片地址。
10.一种防爬虫抓取的方法,其特征在于,包括:
对原始数据进行分割处理得到多个分割块数据;
将每个所述分割块数据进行混淆处理并放置于预设标签中;
给所述多个预设标签分配不同的属性,并对各个所述预设标签的属性进行记录。
11.根据权利要求10所述的方法,其特征在于,所述将每个所述分割块数据进行混淆处理并放置于预设标签中包括:
在所述多个分割块数据中插入多个随机数据,得到混淆数据,并所述混淆数据分别放置于所述预设标签中。
12.根据权利要求10所述的方法,其特征在于,所述将每个所述分割块数据进行混淆处理并放置于预设标签中包括:
将每个所述分割块数据放置于预设标签中之后,在所述多个分割块数据放置的预设标签中随机插入多个随机数据的预设标签,得到混淆数据。
13.根据权利要求10所述的方法,其特征在于,所述方法还包括:
对接收的数据根据记录的各个所述预设标签的属性通过CSS控制所述预设标签中所述分割块数据的显示或隐藏,完成所述数据的显示。
14.一种用于防爬虫抓取的系统,其特征在于,包括服务端和客户端;
所述服务端包括:
分割模块,用于对原始数据进行分割处理得到多个分割块数据;
放置模块,用于将每个所述分割块数据进行混淆处理并放置于预设标签中;以及
分配模块,用于给所述多个预设标签分配不同的属性,并对各个所述预设标签的属性进行记录;
所述客户端包括:
接收模块,用于接收所述服务端的数据;以及
显示模块,用于对接收的数据根据记录的各个所述预设标签的属性通过CSS控制所述预设标签中所述分割块数据的显示或隐藏,完成所述数据的显示。
15.一种电子设备,其特征在于,包括:
处理器;
存储器,存储用于所述处理器控制如权利要求1-5任一项或7-8任一项或10-13任一项所述的方法步骤。
16.一种计算机可读介质,其上存储有计算机可执行指令,其特征在于,所述可执行指令被处理器执行时实现如权利要求1-5任一项或7-8任一项或10-13任一项所述的方法步骤。
CN201610048647.0A 2016-01-25 2016-01-25 防爬虫抓取的方法、服务端、客户端和系统 Active CN105577684B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610048647.0A CN105577684B (zh) 2016-01-25 2016-01-25 防爬虫抓取的方法、服务端、客户端和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610048647.0A CN105577684B (zh) 2016-01-25 2016-01-25 防爬虫抓取的方法、服务端、客户端和系统

Publications (2)

Publication Number Publication Date
CN105577684A CN105577684A (zh) 2016-05-11
CN105577684B true CN105577684B (zh) 2018-09-28

Family

ID=55887341

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610048647.0A Active CN105577684B (zh) 2016-01-25 2016-01-25 防爬虫抓取的方法、服务端、客户端和系统

Country Status (1)

Country Link
CN (1) CN105577684B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107038387A (zh) * 2017-01-04 2017-08-11 阿里巴巴集团控股有限公司 一种数据展示方法、装置及客户端
CN107045612A (zh) * 2017-01-19 2017-08-15 安徽数洋科技有限公司 一种网页数据的加密方法
CN107220291B (zh) * 2017-04-25 2020-12-25 深圳中兴网信科技有限公司 网页数据防抓取的方法及系统
CN109214181A (zh) * 2017-07-01 2019-01-15 武汉斗鱼网络科技有限公司 识别网络爬虫的方法、存储介质、电子设备及系统
CN107491686A (zh) * 2017-07-06 2017-12-19 微梦创科网络科技(中国)有限公司 一种滑动轨迹背景图片的加密、解密方法及装置
CN107483563A (zh) * 2017-07-31 2017-12-15 九次方大数据信息集团有限公司 防爬虫的数据查询方法和装置以及客户端和服务器
CN107454083A (zh) * 2017-08-08 2017-12-08 四川长虹电器股份有限公司 反爬虫的方法
CN108259563B (zh) * 2017-12-12 2021-01-12 平安普惠企业管理有限公司 数据缓存方法、装置、服务器和存储介质
CN108449316B (zh) * 2018-02-06 2020-07-03 麒麟合盛网络技术股份有限公司 一种反爬虫方法、服务器和客户端
CN108346191B (zh) * 2018-02-06 2020-08-14 中国平安人寿保险股份有限公司 考勤方法、装置、计算机设备和存储介质
CN108551450B (zh) * 2018-04-18 2021-04-20 何小林 一种基于无线协议的数据分段传输方法和系统
CN109067805B (zh) * 2018-10-12 2021-07-23 武汉斗鱼网络科技有限公司 直播间数据的防爬虫方法、装置、终端及可读介质
CN111339548B (zh) * 2018-12-18 2023-11-03 北京京东尚科信息技术有限公司 反爬虫的数据处理方法、装置、计算机设备及存储介质
CN110012023B (zh) * 2019-04-15 2020-06-09 重庆天蓬网络有限公司 一种投毒式的防爬方法、系统、终端及介质
CN110502711B (zh) * 2019-07-17 2022-08-26 汉海信息技术(上海)有限公司 页面展示方法、装置、电子设备及可读存储介质
CN110851682A (zh) * 2019-10-17 2020-02-28 上海易点时空网络有限公司 文本反爬虫方法、服务器、显示终端
CN111291397A (zh) * 2020-02-09 2020-06-16 成都神殿科技有限责任公司 一种网页数据防爬加密方法
CN114896531B (zh) * 2022-04-27 2023-03-24 北京聚通达科技股份有限公司 图像处理的方法、装置、电子设备及存储介质
CN117633326A (zh) * 2023-12-04 2024-03-01 北京曜志科技有限公司 一种用于互联网海量数据的数据监测方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101004760A (zh) * 2007-01-10 2007-07-25 苏州大学 基于视觉特征的页面查询接口抽取方法
KR20120122959A (ko) * 2011-04-29 2012-11-07 (주)나모인터랙티브 웹 컨텐츠 수집방법 및 수집장치, 그 기록매체
CN103310012A (zh) * 2013-07-02 2013-09-18 北京航空航天大学 一种分布式网络爬虫系统
CN103984749A (zh) * 2014-05-27 2014-08-13 电子科技大学 一种基于链接分析的聚焦爬虫方法
CN104281626A (zh) * 2013-07-12 2015-01-14 阿里巴巴集团控股有限公司 基于图片化处理的网页展示方法及网页展示装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9692725B2 (en) * 2005-05-26 2017-06-27 Citrix Systems, Inc. Systems and methods for using an HTTP-aware client agent
US20070208828A1 (en) * 2006-01-24 2007-09-06 Brier John J Jr Systems and methods for data mining and interactive presentation of same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101004760A (zh) * 2007-01-10 2007-07-25 苏州大学 基于视觉特征的页面查询接口抽取方法
KR20120122959A (ko) * 2011-04-29 2012-11-07 (주)나모인터랙티브 웹 컨텐츠 수집방법 및 수집장치, 그 기록매체
CN103310012A (zh) * 2013-07-02 2013-09-18 北京航空航天大学 一种分布式网络爬虫系统
CN104281626A (zh) * 2013-07-12 2015-01-14 阿里巴巴集团控股有限公司 基于图片化处理的网页展示方法及网页展示装置
CN103984749A (zh) * 2014-05-27 2014-08-13 电子科技大学 一种基于链接分析的聚焦爬虫方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Detecting near-duplicates for web crawler;GS Manku;《International Conference on World Wide Web》;20070512;全文 *
网页抓取策略研究;翁岩青;《中国优秀硕士学位论文全文数据库 科技信息辑》;20140515;全文 *

Also Published As

Publication number Publication date
CN105577684A (zh) 2016-05-11

Similar Documents

Publication Publication Date Title
CN105577684B (zh) 防爬虫抓取的方法、服务端、客户端和系统
US10601866B2 (en) Discovering website phishing attacks
Quick et al. Cloud storage forensics
EP2813967B1 (en) Apparatus and method for managing digital copyright for epub-based content, and apparatus and method for providing epub-based content according to user authority
US11716197B2 (en) System and method for generating a cryptographic key
CN113806806B (zh) 一种用于网页截图的脱敏、还原方法和系统
CN108985081A (zh) 一种水印加密方法、装置、介质和电子设备
CN107204986A (zh) 云端存储加密方法、解密方法及云端存储加密装置
CN110688662A (zh) 一种敏感数据脱敏及逆脱敏方法、电子设备
CN104426869B (zh) 基于二维码获取信息、发送信息的方法及装置
CN107784207B (zh) 金融app界面的显示方法、装置、设备及存储介质
US20170011212A1 (en) Access control for a resource
US8972747B2 (en) Managing information in a document serialization
CN110798714A (zh) 一种基于hls的本地视频播放系统及播放方法
CN110502711A (zh) 页面展示方法、装置、电子设备及可读存储介质
Dyson et al. Scenario-based creation and digital investigation of ethereum ERC20 tokens
CN109886047B (zh) 文件加密处理方法和装置
US9268713B2 (en) Methods, systems and apparatus for managing data entries on a database
CN104361004B (zh) 浏览器收藏夹数据的处理方法与浏览器
KR102042722B1 (ko) 전자책 컨텐츠 보호
CN113656713A (zh) 一种网络资源处理方法、装置及系统
CN116028901A (zh) 一种嵌入水印的方法、装置、设备及存储介质
CN111666466A (zh) 防止爬虫的方法、系统、装置和计算机可读存储介质
CN106845273B (zh) 一种保护智能终端本地文件的方法和装置
CN106575341A (zh) 复合文档访问

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant