防爬蟲(chóng)抓取的方法、服務(wù)端、客戶端和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本公開(kāi)總體涉及數(shù)據(jù)安全技術(shù)領(lǐng)域,具體而言,涉及一種防爬蟲(chóng)抓取的方法、服務(wù)立而、客戶〗而和系統(tǒng)。
【背景技術(shù)】
[0002]網(wǎng)絡(luò)爬蟲(chóng)(簡(jiǎn)稱爬蟲(chóng))是一種獲取網(wǎng)頁(yè)內(nèi)容的程序,爬蟲(chóng)通過(guò)網(wǎng)頁(yè)的鏈接地址來(lái)尋找網(wǎng)頁(yè)。目前爬蟲(chóng)技術(shù)已經(jīng)很成熟,通過(guò)設(shè)定的規(guī)則,爬蟲(chóng)可以輕易地抓取頁(yè)面源代碼中一些重要信息,例如商品價(jià)格、商家電話號(hào)碼、商品評(píng)分或是商品關(guān)鍵參數(shù)等等。
[0003]目前,防止爬蟲(chóng)的抓取一般有兩種方法:重要信息圖片化處理和請(qǐng)求屏蔽。圖片化處理就是將源代碼中明文顯示的重要信息替換成圖片的形式進(jìn)行展示,但圖片化處理只能屏蔽掉普通爬蟲(chóng)(即只分析源代碼的爬蟲(chóng))的抓取。爬蟲(chóng)通過(guò)抓取圖片后,進(jìn)行OCR識(shí)別,依然可以獲取圖片內(nèi)的信息。請(qǐng)求屏蔽具體為:分析HTTP(Hyper Text Transfer Protocol,超文本傳輸協(xié)議)請(qǐng)求、通過(guò)user agent(用戶代理)、請(qǐng)求IP等信息,針對(duì)爬蟲(chóng)的特征進(jìn)行識(shí)別,如果識(shí)別出該請(qǐng)求為爬蟲(chóng)的請(qǐng)求,則將其進(jìn)行屏蔽。但是,請(qǐng)求屏蔽只能識(shí)別到正規(guī)網(wǎng)絡(luò)爬蟲(chóng)(即提供user agent信息的爬蟲(chóng)),對(duì)于很多模擬人工訪問(wèn)的爬蟲(chóng)則不能被識(shí)別。另外,根據(jù)IP等信息進(jìn)行識(shí)別會(huì)出現(xiàn)誤殺或是漏殺的情況,屏蔽的效果會(huì)存在較大誤差。
[0004]因此,需要一種新的防爬蟲(chóng)抓取的方法、服務(wù)端、客戶端和系統(tǒng)。
[0005]在所述【背景技術(shù)】部分公開(kāi)的上述信息僅用于加強(qiáng)對(duì)本公開(kāi)的背景的理解,因此它可以包括不構(gòu)成對(duì)本領(lǐng)域普通技術(shù)人員已知的現(xiàn)有技術(shù)的信息。
【發(fā)明內(nèi)容】
[0006]本公開(kāi)提供一種防爬蟲(chóng)抓取的方法、服務(wù)端、客戶端和系統(tǒng),基于CSS防止重要信息被直接抓取或被OCR識(shí)別,降低重要信息被泄露的風(fēng)險(xiǎn)。
[0007]本公開(kāi)的其他特性和優(yōu)點(diǎn)將通過(guò)下面的詳細(xì)描述變得顯然,或部分地通過(guò)本公開(kāi)的實(shí)踐而習(xí)得。
[0008]根據(jù)本公開(kāi)的一方面,提供一種防爬蟲(chóng)抓取的方法,包括:
[0009]對(duì)原始數(shù)據(jù)進(jìn)行分割處理得到多個(gè)分割塊數(shù)據(jù),并以key/value形式存儲(chǔ)每個(gè)所述分割塊數(shù)據(jù)的位置/數(shù)值信息;
[0010]根據(jù)所述分割塊數(shù)據(jù)的位置/數(shù)值信息從多個(gè)位置中進(jìn)行隨機(jī)篩選,并記錄篩選出的若干個(gè)位置相對(duì)應(yīng)的key/ value值;
[0011 ]對(duì)篩選出的所述若干個(gè)位置的分割塊數(shù)據(jù)做混淆處理得到混淆數(shù)據(jù);
[0012]將記錄的若干個(gè)key/value值進(jìn)行拼接,得到字符串。
[0013]根據(jù)本公開(kāi)的一實(shí)施方式,對(duì)所述原始數(shù)據(jù)進(jìn)行分割處理之前還包括:
[0014]按照所述原始數(shù)據(jù)的字符進(jìn)行規(guī)范化處理,每個(gè)字符占用固定寬度的像素,其中每個(gè)字符占用1個(gè)像素。
[0015]根據(jù)本公開(kāi)的一實(shí)施方式,所述對(duì)篩選出的所述若干個(gè)位置的分割塊數(shù)據(jù)做混淆處理包括:
[0016]對(duì)篩選出的所述若干個(gè)位置填充隨機(jī)數(shù)據(jù);
[0017]或?qū)Y選出的所述若干個(gè)位置的分割塊數(shù)據(jù)以特殊字符代替。
[0018]根據(jù)本公開(kāi)的一實(shí)施方式,得到混淆數(shù)據(jù)之后還包括:
[0019]對(duì)所述混淆數(shù)據(jù)進(jìn)行圖片化處理,并生成相應(yīng)的圖片地址。
[0020]根據(jù)本公開(kāi)的一實(shí)施方式,所述將記錄的若干個(gè)key/value值進(jìn)行拼接的步驟包括:
[0021]對(duì)所述若干個(gè)key/value值以約定字符進(jìn)行拼接,得到字符串,并在拼接過(guò)程中,加入約定密鑰進(jìn)行加密,得到加密串。
[0022]根據(jù)本公開(kāi)的一實(shí)施方式,所述方法還包括:
[0023]提供加密數(shù)據(jù)的調(diào)用接口,所述調(diào)用接口返回的數(shù)據(jù)格式為所述圖片地址與所述字符串或所述加密串以約定屬性值拼接。
[0024]根據(jù)本公開(kāi)的另一方面,還提供一種用于防爬蟲(chóng)抓取的服務(wù)端,包括:
[0025]分割模塊,用于對(duì)原始數(shù)據(jù)進(jìn)行分割處理得到多個(gè)分割塊數(shù)據(jù),并以key/value形式存儲(chǔ)每個(gè)所述分割塊數(shù)據(jù)的位置/數(shù)值信息;
[0026]篩選模塊,用于根據(jù)所述分割塊數(shù)據(jù)的位置/數(shù)值信息從多個(gè)位置中進(jìn)行隨機(jī)篩選,并記錄篩選出的若干個(gè)位置相對(duì)應(yīng)的key/value值;
[0027]數(shù)據(jù)混淆模塊,用于對(duì)篩選出的所述若干個(gè)位置的分割塊數(shù)據(jù)做混淆處理得到混淆數(shù)據(jù);以及
[0028]拼接模塊,用于將記錄的若干個(gè)key/value值進(jìn)行拼接,得到字符串。
[0029]根據(jù)本公開(kāi)的另一方面,還提供一種防爬蟲(chóng)抓取的方法,包括:
[0030]獲取返回?cái)?shù)據(jù),所述返回?cái)?shù)據(jù)的數(shù)據(jù)格式為圖片地址與字符串以約定屬性值拼接;
[0031 ]將所述字符串切割成若干個(gè)key/value值;
[0032]所述若干個(gè)key/value值通過(guò)控制CSS以浮層形式顯示在根據(jù)所述圖片地址獲取的圖片上,所述圖片為對(duì)混淆數(shù)據(jù)進(jìn)行圖片化處理得到,同時(shí)還生成與所述圖片相應(yīng)的圖片地址。
[0033]根據(jù)本公開(kāi)的一實(shí)施方式,所述返回?cái)?shù)據(jù)的數(shù)據(jù)格式為圖片地址與加密串以約定屬性值拼接,所述方法還包括:
[0034]對(duì)所述加密串進(jìn)行解密,得到字符串,再以約定字符進(jìn)行對(duì)所述字符串進(jìn)行切割,得到若干個(gè)key/value值。
[0035]根據(jù)本公開(kāi)的另一方面,還提供一種用于防爬蟲(chóng)抓取的客戶端,包括:
[0036]調(diào)用模塊,用于獲取返回?cái)?shù)據(jù),所述返回?cái)?shù)據(jù)的數(shù)據(jù)格式為圖片地址與字符串以約定屬性值拼接;
[0037]切割模塊,用于將所述字符串切割成若干個(gè)key/value值;以及
[0038]顯示模塊,用于所述若干個(gè)key/value值通過(guò)控制CSS以浮層形式顯示在根據(jù)所述圖片地址獲取的圖片上,所述圖片為對(duì)混淆數(shù)據(jù)進(jìn)行圖片化處理得到,同時(shí)還生成與所述圖片相應(yīng)的圖片地址。
[0039]根據(jù)本公開(kāi)的另一方面,還提供一種防爬蟲(chóng)抓取的方法,包括:
[0040]對(duì)原始數(shù)據(jù)進(jìn)行分割處理得到多個(gè)分割塊數(shù)據(jù);
[0041 ]將每個(gè)所述分割塊數(shù)據(jù)放置于預(yù)設(shè)標(biāo)簽中;
[0042]給所述多個(gè)預(yù)設(shè)標(biāo)簽分配不同的屬性,并對(duì)各個(gè)所述預(yù)設(shè)標(biāo)簽的屬性進(jìn)行記錄。
[0043]根據(jù)本公開(kāi)的一實(shí)施方式,所述方法還包括:
[0044]在所述多個(gè)分割塊數(shù)據(jù)中插入多個(gè)隨機(jī)數(shù)據(jù),得到混淆數(shù)據(jù),并所述混淆數(shù)據(jù)分別放置于所述預(yù)設(shè)標(biāo)簽中。
[0045]根據(jù)本公開(kāi)的一實(shí)施方式,將每個(gè)所述分割塊數(shù)據(jù)放置于預(yù)設(shè)標(biāo)簽中之后,所述方法還包括:
[0046]在所述多個(gè)分割塊數(shù)據(jù)放置的預(yù)設(shè)標(biāo)簽中隨機(jī)插入多個(gè)隨機(jī)數(shù)據(jù)的預(yù)設(shè)標(biāo)簽,得到混淆數(shù)據(jù)。
[0047]根據(jù)本公開(kāi)的一實(shí)施方式,所述方法還包括:
[0048]對(duì)接收的數(shù)據(jù)根據(jù)記錄的各個(gè)所述預(yù)設(shè)標(biāo)簽的屬性通過(guò)CSS控制所述預(yù)設(shè)標(biāo)簽中所述分割塊數(shù)據(jù)的顯示或隱藏,完成所述數(shù)據(jù)的顯示。
[0049]根據(jù)本公開(kāi)的另一方面,還提供一種用于防爬蟲(chóng)抓取的系統(tǒng),包括服務(wù)端和客戶端;
[0050]所述服務(wù)端包括:
[0051 ]分割模塊,用于對(duì)原始數(shù)據(jù)進(jìn)行分割處理得到多個(gè)分割塊數(shù)據(jù);
[0052]放置模塊,用于將每個(gè)所述分割塊數(shù)據(jù)放置于預(yù)設(shè)標(biāo)簽中;以及
[0053]分配模塊,用于給所述多個(gè)預(yù)設(shè)標(biāo)簽分配不同的屬性,并對(duì)各個(gè)所述預(yù)設(shè)標(biāo)簽的屬性進(jìn)行記錄;
[0054]所述客戶端包括:
[0055]接收模塊,用于接收所述服務(wù)端的數(shù)據(jù);以及
[0056]顯示模塊,用于對(duì)接收的數(shù)據(jù)根據(jù)記錄的各個(gè)所述預(yù)設(shè)標(biāo)簽的屬性通過(guò)CSS控制所述預(yù)設(shè)標(biāo)簽中所述分割塊數(shù)據(jù)的顯示或隱藏,完成所述數(shù)據(jù)的顯示。
[0057]根據(jù)本公開(kāi)的技術(shù)方案,可實(shí)現(xiàn)以下技術(shù)效果:
[0058]在服務(wù)端對(duì)原始數(shù)據(jù)進(jìn)行分割、填充、拼接等一系列處理,最終將數(shù)據(jù)以特殊的格式(如圖片地址+字符串拼接)發(fā)送給客戶端,客戶端對(duì)接收的數(shù)據(jù)進(jìn)行切割等處理,以CSS浮層覆蓋之前在服務(wù)端為了防止抓取而填充的混淆數(shù)據(jù),從而使用戶看到原始數(shù)據(jù)。該系統(tǒng)能夠在更大程度上提高爬蟲(chóng)抓取的門(mén)檻,降低重要信息被獲取的風(fēng)險(xiǎn),能夠防止重要信息被直接抓取或被OCR識(shí)別。
[0059]應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性的,并不能限制本公開(kāi)。
【附圖說(shuō)明】
[0060]通過(guò)參照附圖詳細(xì)描述其示例實(shí)施例,本公開(kāi)的上述和其它目標(biāo)、特征及優(yōu)點(diǎn)將變得更加顯而易見(jiàn)。
[0061]圖1示意性示出根據(jù)本公開(kāi)示例實(shí)施方式的用于防爬蟲(chóng)抓取的系統(tǒng)。
[0062]圖2示意性示出根據(jù)本公開(kāi)示例實(shí)施方式的用于防爬蟲(chóng)抓取的服務(wù)端。
[0063]圖3示意性示出根據(jù)本公開(kāi)示例實(shí)施方式中服務(wù)端防爬蟲(chóng)抓取的方法的流程圖。
[0064]圖4示意性示出根據(jù)本公開(kāi)示例另一實(shí)施方式中服務(wù)端防爬蟲(chóng)抓取的方法的流程圖。
[0065]圖5示意性示出根據(jù)本公開(kāi)示例實(shí)施方式的用于防爬蟲(chóng)抓取的客戶端。
[0066]圖6示意性示出根據(jù)本公開(kāi)示例實(shí)施方式中客戶端防