本申請涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種網(wǎng)絡(luò)爬蟲識別方法和裝置。
背景技術(shù):
現(xiàn)在對網(wǎng)頁進行訪問的既有正常用戶通過瀏覽器等客戶端進行的網(wǎng)頁瀏覽,又有網(wǎng)絡(luò)爬蟲。其中,網(wǎng)絡(luò)爬蟲是一種自動抓取網(wǎng)頁的計算機程序。
由于網(wǎng)絡(luò)爬蟲不需要進行頁面的渲染,只需要獲取文件內(nèi)容以及文件中的統(tǒng)一資源定位符(Uniform Resource Locator;以下簡稱:URL),因此網(wǎng)絡(luò)爬蟲能以非常高的頻率來訪問網(wǎng)頁服務(wù)器,從而會對網(wǎng)頁的正常用戶的訪問造成影響,甚至有些網(wǎng)頁是不希望被爬蟲抓取的,因此需要識別當前訪問網(wǎng)頁的是爬蟲還是正常用戶,以阻止爬蟲的訪問或者降低爬蟲的訪問頻率。
但是現(xiàn)有的對網(wǎng)絡(luò)爬蟲進行識別的技術(shù)存在可靠性和準確性較低,以及影響正常用戶瀏覽網(wǎng)頁的流暢性的問題。
技術(shù)實現(xiàn)要素:
本申請的目的旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問題之一。
為此,本申請的第一個目的在于提出一種網(wǎng)絡(luò)爬蟲的識別方法。該方法對網(wǎng)絡(luò)爬蟲識別的可靠性較高,不影響正常用戶瀏覽網(wǎng)頁的流暢性,并且即便網(wǎng)絡(luò)爬蟲破解了上述識別方法,也會極大的消耗網(wǎng)絡(luò)爬蟲自身的資源,降低網(wǎng)絡(luò)爬蟲訪問網(wǎng)頁的頻率。
本申請的第二個目的在于提出一種網(wǎng)絡(luò)爬蟲的識別裝置。
為了實現(xiàn)上述目的,本申請第一方面實施例的網(wǎng)絡(luò)爬蟲識別方法,包括:接收客戶端在網(wǎng)頁渲染完畢后發(fā)送的所述網(wǎng)頁的圖片和所述網(wǎng)頁的URL;根據(jù)所述URL獲取樣本圖片;根據(jù)相似度與預設(shè)閾值的比較,識別所述客戶端是否為網(wǎng)絡(luò)爬蟲,所述相似度為所述網(wǎng)頁的圖片與所述樣本圖片的相似度。
本申請實施例的網(wǎng)絡(luò)爬蟲識別方法,接收客戶端在網(wǎng)頁渲染完畢后發(fā)送的上述網(wǎng)頁的圖片和上述網(wǎng)頁的URL之后,服務(wù)器根據(jù)上述URL獲取樣本圖片,然后根據(jù)上述網(wǎng)頁的圖片與上述樣本圖片的相似度與預設(shè)閾值的比較,識別上述客戶端是否為網(wǎng)絡(luò)爬蟲,該方法 對網(wǎng)絡(luò)爬蟲識別的可靠性較高,不影響正常用戶瀏覽網(wǎng)頁的流暢性,并且即便網(wǎng)絡(luò)爬蟲破解了上述識別方法,也會極大的消耗網(wǎng)絡(luò)爬蟲自身的資源,降低網(wǎng)絡(luò)爬蟲訪問網(wǎng)頁的頻率。
為了實現(xiàn)上述目的,本申請第二方面實施例的網(wǎng)絡(luò)爬蟲識別方法,包括:在網(wǎng)頁渲染完畢后,客戶端獲取當前渲染的網(wǎng)頁的圖片和所述網(wǎng)頁的URL;所述客戶端將所述網(wǎng)頁的圖片和所述網(wǎng)頁的URL發(fā)送給服務(wù)器,以便所述服務(wù)器根據(jù)所述URL獲取樣本圖片,并根據(jù)相似度與預設(shè)閾值的比較,識別所述客戶端是否為網(wǎng)絡(luò)爬蟲,所述相似度為所述網(wǎng)頁的圖片與所述樣本圖片的相似度。
本申請實施例的網(wǎng)絡(luò)爬蟲識別方法,在網(wǎng)頁渲染完畢后,客戶端獲取當前渲染的網(wǎng)頁的圖片和上述網(wǎng)頁的URL,并將上述網(wǎng)頁的圖片和上述網(wǎng)頁的URL發(fā)送給服務(wù)器,以便上述服務(wù)器根據(jù)上述URL獲取樣本圖片,并根據(jù)上述網(wǎng)頁的圖片與上述樣本圖片的相似度與預設(shè)閾值的比較,識別上述客戶端是否為網(wǎng)絡(luò)爬蟲。該方法對網(wǎng)絡(luò)爬蟲識別的可靠性較高,不影響正常用戶瀏覽網(wǎng)頁的流暢性,并且即便網(wǎng)絡(luò)爬蟲破解了上述識別方法,也會極大的消耗網(wǎng)絡(luò)爬蟲自身的資源,降低網(wǎng)絡(luò)爬蟲訪問網(wǎng)頁的頻率。
為了實現(xiàn)上述目的,本申請第三方面實施例的網(wǎng)絡(luò)爬蟲識別方法,包括:接收客戶端的連接信息,所述客戶端的連接信息包括所述客戶端的IP地址和所述客戶端的連接時間;如果所述客戶端的連接信息在待驗證客戶端庫中,并且所述客戶端的連接信息在所述待驗證客戶端庫中存在的時間超過預設(shè)時長,則識別所述客戶端為網(wǎng)絡(luò)爬蟲。
本申請實施例的網(wǎng)絡(luò)爬蟲識別方法,接收客戶端的連接信息之后,如果上述客戶端的連接信息在待驗證客戶端庫中,并且上述客戶端的連接信息在待驗證客戶端庫中存在的時間超過預設(shè)時長,則識別上述客戶端為網(wǎng)絡(luò)爬蟲。該方法對網(wǎng)絡(luò)爬蟲識別的可靠性較高,不影響正常用戶瀏覽網(wǎng)頁的流暢性,用戶體驗較好。
為了實現(xiàn)上述目的,本申請第四方面實施例的網(wǎng)絡(luò)爬蟲識別裝置,包括:接收模塊,用于接收客戶端在網(wǎng)頁渲染完畢后發(fā)送的所述網(wǎng)頁的圖片和所述網(wǎng)頁的URL;獲取模塊,用于根據(jù)所述URL獲取樣本圖片;識別模塊,用于根據(jù)相似度與預設(shè)閾值的比較,識別所述客戶端是否為網(wǎng)絡(luò)爬蟲,所述相似度為所述接收模塊接收的網(wǎng)頁的圖片與所述獲取模塊獲取的樣本圖片的相似度。
本申請實施例的網(wǎng)絡(luò)爬蟲識別裝置,接收模塊接收客戶端在網(wǎng)頁渲染完畢后發(fā)送的上述網(wǎng)頁的圖片和上述網(wǎng)頁的URL之后,獲取模塊根據(jù)上述URL獲取樣本圖片,然后識別模塊根據(jù)上述網(wǎng)頁的圖片與上述樣本圖片的相似度與預設(shè)閾值的比較,識別上述客戶端是否為網(wǎng)絡(luò)爬蟲,該裝置對網(wǎng)絡(luò)爬蟲識別的可靠性較高,不影響正常用戶瀏覽網(wǎng)頁的流暢性,并且即便網(wǎng)絡(luò)爬蟲破解了上述識別方法,也會極大的消耗網(wǎng)絡(luò)爬蟲自身的資源,降低網(wǎng)絡(luò) 爬蟲訪問網(wǎng)頁的頻率。
為了實現(xiàn)上述目的,本申請第五方面實施例的網(wǎng)絡(luò)爬蟲識別裝置,包括:獲取模塊,用于在網(wǎng)頁渲染完畢后,獲取當前渲染的網(wǎng)頁的圖片和所述網(wǎng)頁的URL;發(fā)送模塊,用于將所述獲取模塊獲取的所述網(wǎng)頁的圖片和所述網(wǎng)頁的URL發(fā)送給服務(wù)器,以便所述服務(wù)器根據(jù)所述URL獲取樣本圖片,并根據(jù)相似度與預設(shè)閾值的比較,識別所述客戶端是否為網(wǎng)絡(luò)爬蟲,所述相似度為所述網(wǎng)頁的圖片與所述樣本圖片的相似度。
本申請實施例的網(wǎng)絡(luò)爬蟲識別裝置,在網(wǎng)頁渲染完畢后,獲取模塊獲取當前渲染的網(wǎng)頁的圖片和上述網(wǎng)頁的URL,發(fā)送模塊將上述網(wǎng)頁的圖片和上述網(wǎng)頁的URL發(fā)送給服務(wù)器,以便上述服務(wù)器根據(jù)上述URL獲取樣本圖片,并根據(jù)上述網(wǎng)頁的圖片與上述樣本圖片的相似度與預設(shè)閾值的比較,識別上述客戶端是否為網(wǎng)絡(luò)爬蟲。該裝置對網(wǎng)絡(luò)爬蟲識別的可靠性較高,不影響正常用戶瀏覽網(wǎng)頁的流暢性,并且即便網(wǎng)絡(luò)爬蟲破解了上述識別方法,也會極大的消耗網(wǎng)絡(luò)爬蟲自身的資源,降低網(wǎng)絡(luò)爬蟲訪問網(wǎng)頁的頻率。
為了實現(xiàn)上述目的,本申請第六方面實施例的網(wǎng)絡(luò)爬蟲識別裝置,包括:接收模塊,用于接收客戶端的連接信息,所述客戶端的連接信息包括所述客戶端的IP地址和所述客戶端的連接時間;識別模塊,用于當所述接收模塊接收的所述客戶端的連接信息在待驗證客戶端庫中,并且所述客戶端的連接信息在所述待驗證客戶端庫中存在的時間超過預設(shè)時長時,識別所述客戶端為網(wǎng)絡(luò)爬蟲。
本申請實施例的網(wǎng)絡(luò)爬蟲識別裝置,接收模塊接收客戶端的連接信息之后,如果上述客戶端的連接信息在待驗證客戶端庫中,并且上述客戶端的連接信息在待驗證客戶端庫中存在的時間超過預設(shè)時長,則識別模塊識別上述客戶端為網(wǎng)絡(luò)爬蟲。該裝置對網(wǎng)絡(luò)爬蟲識別的可靠性較高,不影響正常用戶瀏覽網(wǎng)頁的流暢性,用戶體驗較好。
本申請附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本申請的實踐了解到。
附圖說明
本申請上述的和/或附加的方面和優(yōu)點從下面結(jié)合附圖對實施例的描述中將變得明顯和容易理解,其中:
圖1為本申請網(wǎng)絡(luò)爬蟲識別方法一個實施例的流程圖;
圖2為本申請網(wǎng)絡(luò)爬蟲識別方法另一個實施例的流程圖;
圖3為本申請網(wǎng)絡(luò)爬蟲識別方法再一個實施例的流程圖;
圖4為本申請網(wǎng)絡(luò)爬蟲識別方法再一個實施例的流程圖;
圖5為本申請網(wǎng)絡(luò)爬蟲識別方法再一個實施例的流程圖;
圖6為本申請網(wǎng)絡(luò)爬蟲識別裝置一個實施例的結(jié)構(gòu)示意圖;
圖7為本申請網(wǎng)絡(luò)爬蟲識別裝置另一個實施例的結(jié)構(gòu)示意圖;
圖8為本申請網(wǎng)絡(luò)爬蟲識別裝置再一個實施例的結(jié)構(gòu)示意圖;
圖9為本申請網(wǎng)絡(luò)爬蟲識別裝置再一個實施例的結(jié)構(gòu)示意圖;
圖10為本申請網(wǎng)絡(luò)爬蟲識別裝置再一個實施例的結(jié)構(gòu)示意圖。
具體實施方式
下面詳細描述本申請的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本申請,而不能理解為對本申請的限制。相反,本申請的實施例包括落入所附加權(quán)利要求書的精神和內(nèi)涵范圍內(nèi)的所有變化、修改和等同物。
圖1為本申請網(wǎng)絡(luò)爬蟲識別方法一個實施例的流程圖,如圖1所示,該網(wǎng)絡(luò)爬蟲識別方法可以包括:
步驟101,接收客戶端在網(wǎng)頁渲染完畢后發(fā)送的上述網(wǎng)頁的圖片和上述網(wǎng)頁的URL。
步驟102,根據(jù)上述URL獲取樣本圖片。
具體地,根據(jù)上述URL獲取樣本圖片可以為:服務(wù)器根據(jù)上述網(wǎng)頁的圖片的尺寸和上述URL在樣本圖片庫中查找匹配上述URL和上述尺寸的圖片;如果查找到,則輸出匹配上述URL和上述尺寸的圖片;如果在上述樣本圖片庫中未查找到匹配上述URL和上述尺寸的圖片,則在上述樣本圖片庫中查找匹配上述URL的圖片,并在查找到的匹配上述URL的圖片中查找與上述尺寸最接近的圖片,并輸出查找到的與上述尺寸最接近的圖片。
進一步地,如果在上述樣本圖片庫中未查找到匹配上述URL的圖片,或者上述樣本圖片庫中已有的URL的頁面有修改,則服務(wù)器生成上述URL所支持的至少一種渲染尺寸的圖片,并將生成的圖片存入上述樣本圖片庫作為上述URL的樣本圖片。
步驟103,根據(jù)相似度與預設(shè)閾值的比較,識別上述客戶端是否為網(wǎng)絡(luò)爬蟲,上述相似度為上述網(wǎng)頁的圖片與上述樣本圖片的相似度。
具體地,如果上述網(wǎng)頁的圖片與上述樣本圖片的相似度大于預設(shè)閾值,則識別上述客戶端不是網(wǎng)絡(luò)爬蟲。
其中,上述預設(shè)閾值可以在具體實現(xiàn)時動態(tài)設(shè)置,本實施例對上述預設(shè)閾值的大小不作限定。
進一步地,步驟102之前,服務(wù)器還可以先判斷上述客戶端的連接信息和上述URL是 否在待驗證客戶端庫中;如果是,則服務(wù)器執(zhí)行步驟102根據(jù)上述URL獲取樣本圖片的步驟。其中,上述客戶端的連接信息可以包括上述客戶端的因特網(wǎng)協(xié)議(Internet Protocol;以下簡稱:IP)地址、上述客戶端的連接時間、用戶代理(user agent)和上述客戶端的用戶標識等可以標記該客戶端的信息。
進一步地,步驟103,識別上述客戶端不是網(wǎng)絡(luò)爬蟲之前,如果上述網(wǎng)頁的圖片與上述樣本圖片的相似度大于預設(shè)閾值,則服務(wù)器從上述待驗證客戶端庫中刪除上述網(wǎng)頁的URL,然后判斷待驗證客戶端庫中是否還有上述客戶端對應的其他需要驗證的URL;如果否,則服務(wù)器執(zhí)行步驟103識別上述客戶端不是網(wǎng)絡(luò)爬蟲的步驟。
進一步地,步驟101之前,服務(wù)器還可以處理客戶端正常的頁面訪問請求,具體地包括:服務(wù)器接收客戶端的連接信息和上述客戶端當前訪問的URL,其中,上述客戶端的連接信息可以包括上述客戶端的IP地址、上述客戶端的連接時間、user agent和上述客戶端的用戶標識等可以標記該客戶端的信息;然后服務(wù)器判斷上述客戶端的連接信息是否在待驗證客戶端庫中;如果否,則服務(wù)器將上述客戶端的連接信息和上述客戶端當前訪問的URL存入待驗證客戶端庫。
進一步地,判斷上述客戶端的連接信息是否在待驗證客戶端庫中之后,如果上述客戶端的連接信息在上述待驗證客戶端庫中,則服務(wù)器判斷上述客戶端的連接信息在上述待驗證客戶端庫中存在的時間是否超過預設(shè)時長;如果是,則服務(wù)器識別上述客戶端為網(wǎng)絡(luò)爬蟲,并將上述客戶端的連接信息存入網(wǎng)絡(luò)爬蟲庫;如果上述客戶端的連接信息在上述待驗證客戶端庫中存在的時間未超過預設(shè)時長,則服務(wù)器將上述客戶端的連接信息和上述客戶端當前訪問的URL存入上述待驗證客戶端庫。
其中,上述預設(shè)時長可以在具體實現(xiàn)時根據(jù)業(yè)務(wù)形態(tài)動態(tài)設(shè)置,本實施例對上述預設(shè)時長的長短不作限定,舉例來說,上述預設(shè)時長可以為10秒。
進一步地,判斷上述客戶端的連接信息是否在待驗證客戶端庫中之前,服務(wù)器還可以先判斷上述客戶端的連接信息是否在網(wǎng)絡(luò)爬蟲庫中;如果是,則識別上述客戶端為網(wǎng)絡(luò)爬蟲;如果上述客戶端的連接信息不在上述網(wǎng)絡(luò)爬蟲庫中,則服務(wù)器執(zhí)行判斷上述客戶端的連接信息是否在待驗證客戶端庫中的步驟。
上述網(wǎng)絡(luò)爬蟲識別方法中,接收客戶端在網(wǎng)頁渲染完畢后發(fā)送的上述網(wǎng)頁的圖片和上述網(wǎng)頁的URL之后,服務(wù)器根據(jù)上述URL獲取樣本圖片,然后根據(jù)上述網(wǎng)頁的圖片與上述樣本圖片的相似度與預設(shè)閾值的比較,識別上述客戶端是否為網(wǎng)絡(luò)爬蟲,該方法對網(wǎng)絡(luò)爬蟲識別的可靠性較高,不影響正常用戶瀏覽網(wǎng)頁的流暢性,并且即便網(wǎng)絡(luò)爬蟲破解了上述識別方法,也會極大的消耗網(wǎng)絡(luò)爬蟲自身的資源,降低網(wǎng)絡(luò)爬蟲訪問網(wǎng)頁的頻率。
圖2為本申請網(wǎng)絡(luò)爬蟲識別方法另一個實施例的流程圖,如圖2所示,該網(wǎng)絡(luò)爬蟲識別方法可以包括:
步驟201,服務(wù)器接收客戶端在網(wǎng)頁渲染完畢后發(fā)送的上述網(wǎng)頁的圖片和上述網(wǎng)頁的URL。
步驟202,判斷上述客戶端的連接信息和上述URL是否在待驗證客戶端庫中。如果否,則說明客戶端的這次上報不需要處理,本次流程結(jié)束;如果上述客戶端的連接信息和上述URL在待驗證客戶端庫中,則執(zhí)行步驟203。
其中,上述客戶端的連接信息可以包括上述客戶端的IP地址、上述客戶端的連接時間、用戶代理(user agent)和上述客戶端的用戶標識等可以標記該客戶端的信息。
步驟203,服務(wù)器根據(jù)上述網(wǎng)頁的圖片的尺寸和上述URL獲取樣本圖片。
具體地,服務(wù)器根據(jù)上述網(wǎng)頁的圖片的尺寸和上述URL獲取樣本圖片可以為:服務(wù)器根據(jù)上述網(wǎng)頁的圖片的尺寸和上述URL在樣本圖片庫中查找匹配上述URL和上述尺寸的圖片;如果查找到,則輸出匹配上述URL和上述尺寸的圖片。
如果在上述樣本圖片庫中未查找到匹配上述URL和上述尺寸的圖片,則服務(wù)器在上述樣本圖片庫中查找匹配上述URL的圖片,如果仍未查找到匹配上述URL的圖片,則說明這個URL不需要進行樣本圖片比對;如果查找到匹配上述URL的圖片,但是在匹配上述URL的圖片中沒有匹配上述尺寸的圖片,則在查找到的匹配上述URL的圖片中查找與上述尺寸最接近的圖片,并輸出查找到的與上述尺寸最接近的圖片。
進一步地,如果在上述樣本圖片庫中未查找到匹配上述URL的圖片(也就是說,有新增的URL),或者上述樣本圖片庫中已有的URL的頁面有修改,則服務(wù)器生成上述URL所支持的至少一種渲染尺寸的圖片,并將生成的圖片存入上述樣本圖片庫作為上述URL的樣本圖片,并提供圖片檢索接口,以供查找樣本圖片時使用。
步驟204,判斷上述網(wǎng)頁的圖片與上述樣本圖片的相似度是否大于預設(shè)閾值。如果是,則執(zhí)行步驟205;如果上述網(wǎng)頁的圖片與上述樣本圖片的相似度小于或等于預設(shè)閾值,則結(jié)束本次流程。
其中,上述預設(shè)閾值可以在具體實現(xiàn)時動態(tài)設(shè)置,本實施例對上述預設(shè)閾值的大小不作限定。
步驟205,服務(wù)器從上述待驗證客戶端庫中刪除上述網(wǎng)頁的URL。
步驟206,判斷待驗證客戶端庫中是否還有上述客戶端對應的其他需要驗證的URL;如果是,則結(jié)束本次流程;如果待驗證客戶端庫中已沒有上述客戶端對應的其他需要驗證的URL,則執(zhí)行步驟207。
步驟207,服務(wù)器識別上述客戶端不是網(wǎng)絡(luò)爬蟲。本次流程結(jié)束。
進一步地,在步驟201之前,服務(wù)器還會接收并處理客戶端正常的網(wǎng)頁訪問請求,服務(wù)器處理客戶端正常的網(wǎng)頁訪問請求的流程可以如圖3所示。圖3為本申請網(wǎng)絡(luò)爬蟲識別方法再一個實施例的流程圖,可以包括:
步驟301,服務(wù)器接收客戶端的連接信息和上述客戶端當前訪問的URL。其中,上述客戶端的連接信息可以包括上述客戶端的IP地址、上述客戶端的連接時間、user agent和上述客戶端的用戶標識等可以標記該客戶端的信息。
步驟302,判斷上述客戶端的連接信息是否在網(wǎng)絡(luò)爬蟲庫中。如果是,則執(zhí)行步驟303;如果上述客戶端的連接信息不在上述網(wǎng)絡(luò)爬蟲庫中,則執(zhí)行步驟304。
步驟303,服務(wù)器識別上述客戶端為網(wǎng)絡(luò)爬蟲,本次流程結(jié)束。
也就是說,本實施例中可以通過上述客戶端的連接信息出現(xiàn)在網(wǎng)絡(luò)爬蟲庫來快速識別上述客戶端為網(wǎng)絡(luò)爬蟲。
步驟304,判斷上述客戶端的連接信息是否在待驗證客戶端庫中;如果否,則執(zhí)行步驟305;如果上述客戶端的連接信息在上述待驗證客戶端庫中,則執(zhí)行步驟306。
步驟305,服務(wù)器將上述客戶端的連接信息和上述客戶端當前訪問的URL存入待驗證客戶端庫,本次流程結(jié)束。
步驟306,判斷上述客戶端的連接信息在上述待驗證客戶端庫中存在的時間是否超過預設(shè)時長。如果是,則執(zhí)行步驟307;如果上述客戶端的連接信息在上述待驗證客戶端庫中存在的時間未超過預設(shè)時長,則執(zhí)行步驟305。
其中,上述預設(shè)時長可以在具體實現(xiàn)時根據(jù)業(yè)務(wù)形態(tài)動態(tài)設(shè)置,本實施例對上述預設(shè)時長的長短不作限定,舉例來說,上述預設(shè)時長可以為10秒。
步驟307,服務(wù)器識別上述客戶端為網(wǎng)絡(luò)爬蟲,并將上述客戶端的連接信息存入網(wǎng)絡(luò)爬蟲庫。本次流程結(jié)束。
上述網(wǎng)絡(luò)爬蟲識別方法,通過要求客戶端上報其渲染出來的網(wǎng)頁圖片,服務(wù)器端使用樣本圖片校驗客戶端上報的圖片,如果客戶端上報的圖片與樣本圖片的相似度達到了預設(shè)閾值,則認為該客戶端是正常的網(wǎng)頁訪問。本申請?zhí)峁┑木W(wǎng)絡(luò)爬蟲識別方法確保了客戶端必須進行網(wǎng)頁的渲染,因此,即便網(wǎng)絡(luò)爬蟲破解了上述識別方法,也需要進行網(wǎng)頁渲染,而網(wǎng)頁渲染會相對于只做網(wǎng)頁解析耗時多了,因此,網(wǎng)絡(luò)爬蟲也就沒法以高頻率爬去網(wǎng)頁。
綜上所述,本申請?zhí)峁┑木W(wǎng)絡(luò)爬蟲識別方法具有以下優(yōu)點:
1、不擔心網(wǎng)絡(luò)爬蟲偽造user agent,因為本申請不依賴user agent信息,所以本申請?zhí)峁┑木W(wǎng)絡(luò)爬蟲識別方法對網(wǎng)絡(luò)爬蟲識別的可靠性較高;
2、不會對正常用戶的瀏覽體驗造成影響。因為正常用戶瀏覽網(wǎng)頁時,客戶端也需要進行網(wǎng)頁渲染,本申請?zhí)峁┑木W(wǎng)絡(luò)爬蟲識別方法是在客戶端正常的網(wǎng)頁渲染完成之后,截取了網(wǎng)頁的圖片上報給服務(wù)器而已,因此不影響正常用戶瀏覽網(wǎng)頁的流暢性。
3、不怕被網(wǎng)絡(luò)爬蟲破解,即便網(wǎng)絡(luò)爬蟲破解了本申請?zhí)峁┑木W(wǎng)絡(luò)爬蟲識別方法,網(wǎng)絡(luò)爬蟲也必須進行網(wǎng)頁渲染,并上報渲染的網(wǎng)頁的圖片,這就會極大的消耗網(wǎng)絡(luò)爬蟲自身的資源,從而可以降低網(wǎng)絡(luò)爬蟲訪問網(wǎng)頁的頻率。
圖4為本申請網(wǎng)絡(luò)爬蟲識別方法再一個實施例的流程圖,如圖4所示,該網(wǎng)絡(luò)爬蟲識別方法可以包括:
步驟401,在網(wǎng)頁渲染完畢后,客戶端獲取當前渲染的網(wǎng)頁的圖片和上述網(wǎng)頁的URL。
步驟402,客戶端將上述網(wǎng)頁的圖片和上述網(wǎng)頁的URL發(fā)送給服務(wù)器,以便上述服務(wù)器根據(jù)上述URL獲取樣本圖片,并根據(jù)相似度與預設(shè)閾值的比較,識別上述客戶端是否為網(wǎng)絡(luò)爬蟲,上述相似度為上述網(wǎng)頁的圖片與上述樣本圖片的相似度。
其中,上述預設(shè)閾值可以在具體實現(xiàn)時動態(tài)設(shè)置,本實施例對上述預設(shè)閾值的大小不作限定。
上述網(wǎng)絡(luò)爬蟲識別方法中,在網(wǎng)頁渲染完畢后,客戶端獲取當前渲染的網(wǎng)頁的圖片和上述網(wǎng)頁的URL,并將上述網(wǎng)頁的圖片和上述網(wǎng)頁的URL發(fā)送給服務(wù)器,以便上述服務(wù)器根據(jù)上述URL獲取樣本圖片,并根據(jù)上述網(wǎng)頁的圖片與上述樣本圖片的相似度與預設(shè)閾值的比較,識別上述客戶端是否為網(wǎng)絡(luò)爬蟲。該方法對網(wǎng)絡(luò)爬蟲識別的可靠性較高,不影響正常用戶瀏覽網(wǎng)頁的流暢性,并且即便網(wǎng)絡(luò)爬蟲破解了上述識別方法,也會極大的消耗網(wǎng)絡(luò)爬蟲自身的資源,降低網(wǎng)絡(luò)爬蟲訪問網(wǎng)頁的頻率。
圖5為本申請網(wǎng)絡(luò)爬蟲識別方法再一個實施例的流程圖,如圖5所示,該網(wǎng)絡(luò)爬蟲識別方法可以包括:
步驟501,接收客戶端的連接信息。
其中,上述客戶端的連接信息包括客戶端的IP地址和上述客戶端的連接時間;進一步地,上述客戶端的連接信息還可以包括用戶代理(user agent)和上述客戶端的用戶標識等可以標記該客戶端的信息。
步驟502,如果上述客戶端的連接信息在待驗證客戶端庫中,并且上述客戶端的連接信息在上述待驗證客戶端庫中存在的時間超過預設(shè)時長,則識別上述客戶端為網(wǎng)絡(luò)爬蟲。
其中,上述預設(shè)時長可以在具體實現(xiàn)時根據(jù)業(yè)務(wù)形態(tài)動態(tài)設(shè)置,本實施例對上述預設(shè)時長的長短不作限定,舉例來說,上述預設(shè)時長可以為10秒。
進一步地,識別上述客戶端為網(wǎng)絡(luò)爬蟲之后,服務(wù)器還可以將上述客戶端的連接信息 存入網(wǎng)絡(luò)爬蟲庫。
進一步地,接收客戶端的連接信息之后,如果上述客戶端的連接信息不在待驗證客戶端庫中,則服務(wù)器可以將上述客戶端的連接信息和上述客戶端當前訪問的URL存入上述待驗證客戶端庫。
進一步地,本實施例中,步驟501之后,步驟502之前,服務(wù)器還可以判斷上述客戶端的連接信息是否在網(wǎng)絡(luò)爬蟲庫中;如果是,則服務(wù)器識別上述客戶端為網(wǎng)絡(luò)爬蟲;如果所述客戶端的連接信息不在網(wǎng)絡(luò)爬蟲庫中,則服務(wù)器執(zhí)行步驟502。
上述網(wǎng)絡(luò)爬蟲識別方法,接收客戶端的連接信息之后,如果上述客戶端的連接信息在待驗證客戶端庫中,并且上述客戶端的連接信息在待驗證客戶端庫中存在的時間超過預設(shè)時長,則服務(wù)器識別上述客戶端為網(wǎng)絡(luò)爬蟲。該方法對網(wǎng)絡(luò)爬蟲識別的可靠性較高,不影響正常用戶瀏覽網(wǎng)頁的流暢性,用戶體驗較好。
圖6為本申請網(wǎng)絡(luò)爬蟲識別裝置一個實施例的結(jié)構(gòu)示意圖,本實施例中的網(wǎng)絡(luò)識別裝置可以作為服務(wù)器,或者服務(wù)器的一部分實現(xiàn)本申請圖1所示實施例的流程,如圖6所示,該網(wǎng)絡(luò)爬蟲識別裝置可以包括:接收模塊61、獲取模塊62和識別模塊63;
其中,接收模塊61,用于接收客戶端在網(wǎng)頁渲染完畢后發(fā)送的上述網(wǎng)頁的圖片和上述網(wǎng)頁的URL;
獲取模塊62,用于根據(jù)上述URL獲取樣本圖片;
識別模塊63,用于根據(jù)相似度與預設(shè)閾值的比較,識別上述客戶端是否為網(wǎng)絡(luò)爬蟲,其中,上述相似度為接收模塊61接收的網(wǎng)頁的圖片與獲取模塊62獲取的樣本圖片的相似度。具體地,識別模塊63,用于當上述網(wǎng)頁的圖片與獲取模塊62獲取的樣本圖片的相似度大于預設(shè)閾值時,識別上述客戶端不是網(wǎng)絡(luò)爬蟲。其中,上述預設(shè)閾值可以在具體實現(xiàn)時動態(tài)設(shè)置,本實施例對上述預設(shè)閾值的大小不作限定。
上述網(wǎng)絡(luò)爬蟲識別裝置中,接收模塊61接收客戶端在網(wǎng)頁渲染完畢后發(fā)送的上述網(wǎng)頁的圖片和上述網(wǎng)頁的URL之后,獲取模塊62根據(jù)上述URL獲取樣本圖片,識別模塊63根據(jù)上述網(wǎng)頁的圖片與上述樣本圖片的相似度與預設(shè)閾值的比較,識別上述客戶端是否為網(wǎng)絡(luò)爬蟲,該裝置對網(wǎng)絡(luò)爬蟲識別的可靠性較高,不影響正常用戶瀏覽網(wǎng)頁的流暢性,并且即便網(wǎng)絡(luò)爬蟲破解了上述識別方法,也會極大的消耗網(wǎng)絡(luò)爬蟲自身的資源,降低網(wǎng)絡(luò)爬蟲訪問網(wǎng)頁的頻率。
圖7為本申請網(wǎng)絡(luò)爬蟲識別裝置另一個實施例的結(jié)構(gòu)示意圖,本實施例中的網(wǎng)絡(luò)識別裝置可以作為服務(wù)器,或者服務(wù)器的一部分實現(xiàn)本申請圖1~圖3所示實施例的流程,與圖6所示的網(wǎng)絡(luò)爬蟲識別裝置相比,不同之處在于,圖7所示的網(wǎng)絡(luò)爬蟲識別裝置,還可以 包括:判斷模塊64;
判斷模塊64,用于在獲取模塊62獲取樣本圖片之前,判斷上述客戶端的連接信息和上述URL是否在待驗證客戶端庫中;則,獲取模塊62,具體用于當判斷模塊64確定上述客戶端的連接信息和上述URL在待驗證客戶端庫中時,執(zhí)行根據(jù)上述URL獲取樣本圖片的步驟。其中,上述客戶端的連接信息可以包括上述客戶端的IP地址、上述客戶端的連接時間、用戶代理(user agent)和上述客戶端的用戶標識等可以標記該客戶端的信息。
進一步地,上述網(wǎng)絡(luò)爬蟲識別裝置還可以包括:刪除模塊65;
刪除模塊65,用于在識別模塊63識別上述客戶端不是網(wǎng)絡(luò)爬蟲之前,當上述網(wǎng)頁的圖片與上述樣本圖片的相似度大于預設(shè)閾值時,從上述待驗證客戶端庫中刪除上述網(wǎng)頁的URL;
判斷模塊64,還用于判斷上述待驗證客戶端庫中是否還有該客戶端對應的其他需要驗證的URL;
這時,識別模塊63,具體用于當判斷模塊64確定上述待驗證客戶端庫中已沒有該客戶端對應的其他需要驗證的URL時,執(zhí)行識別上述客戶端不是網(wǎng)絡(luò)爬蟲的步驟。
進一步地,上述網(wǎng)絡(luò)爬蟲識別裝置還可以包括:保存模塊66;
接收模塊61,還用于在接收上述網(wǎng)頁的圖片和上述網(wǎng)頁的URL之前,接收客戶端的連接信息和上述客戶端當前訪問的URL,其中,上述客戶端的連接信息可以包括上述客戶端的IP地址、上述客戶端的連接時間、user agent和上述客戶端的用戶標識等可以標記該客戶端的信息;
判斷模塊64,還用于判斷上述客戶端的連接信息是否在待驗證客戶端庫中;
保存模塊66,用于當判斷模塊64確定上述客戶端的連接信息不在待驗證客戶端庫中時,將上述客戶端的連接信息和上述客戶端當前訪問的URL存入待驗證客戶端庫。
進一步地,判斷模塊64,還用于在判斷上述客戶端的連接信息是否在待驗證客戶端庫中之后,如果上述客戶端的連接信息在待驗證客戶端庫中,則判斷上述客戶端的連接信息在待驗證客戶端庫中存在的時間是否超過預設(shè)時長;
識別模塊63,還用于當判斷模塊64確定上述客戶端的連接信息在待驗證客戶端庫中存在的時間超過預設(shè)時長時,識別上述客戶端為網(wǎng)絡(luò)爬蟲;
保存模塊66,還用于在識別模塊63識別上述客戶端為網(wǎng)絡(luò)爬蟲之后,將上述客戶端的連接信息存入網(wǎng)絡(luò)爬蟲庫;以及在上述客戶端的連接信息在上述待驗證客戶端庫中存在的時間未超過預設(shè)時長時,將上述客戶端的連接信息和上述客戶端當前訪問的URL存入待驗證客戶端庫。
其中,上述預設(shè)時長可以在具體實現(xiàn)時根據(jù)業(yè)務(wù)形態(tài)動態(tài)設(shè)置,本實施例對上述預設(shè)時長的長短不作限定,舉例來說,上述預設(shè)時長可以為10秒。
進一步地,判斷模塊64,還用于在判斷上述客戶端的連接信息是否在待驗證客戶端庫中之前,判斷上述客戶端的連接信息是否在網(wǎng)絡(luò)爬蟲庫中;
識別模塊63,還用于在判斷模塊64確定上述客戶端的連接信息在網(wǎng)絡(luò)爬蟲庫中時,識別上述客戶端為網(wǎng)絡(luò)爬蟲;
判斷模塊64,具體用于在確定上述客戶端的連接信息不在網(wǎng)絡(luò)爬蟲庫中之后,執(zhí)行判斷上述客戶端的連接信息是否在待驗證客戶端庫中的步驟。
本實施例中,獲取模塊62可以包括:查找子模塊621和輸出子模塊622;
其中,查找子模塊621,用于根據(jù)上述網(wǎng)頁的圖片的尺寸和上述URL在樣本圖片庫中查找匹配上述URL和上述尺寸的圖片;
輸出子模塊622,用于在查找子模塊621查找到匹配上述URL和上述尺寸的圖片之后,輸出匹配上述URL和上述尺寸的圖片;
查找子模塊621,還用于在上述樣本圖片庫中未查找到匹配上述URL和上述尺寸的圖片時,在上述樣本圖片庫中查找匹配上述URL的圖片,并在查找到的匹配上述URL的圖片中查找與上述尺寸最接近的圖片;
輸出子模塊622,還用于輸出查找子模塊621查找到的與上述尺寸最接近的圖片。
進一步地,上述網(wǎng)絡(luò)爬蟲識別裝置還可以包括:生成模塊67;
生成模塊67,用于當在樣本圖片庫中未查找到匹配上述URL的圖片,或者樣本圖片庫中已有的URL的頁面有修改時,生成上述URL所支持的至少一種渲染尺寸的圖片;
保存模塊66,還用于將生成模塊67生成的圖片存入上述樣本圖片庫作為上述URL的樣本圖片。
上述網(wǎng)絡(luò)爬蟲識別裝置對網(wǎng)絡(luò)爬蟲識別的可靠性較高,不影響正常用戶瀏覽網(wǎng)頁的流暢性,并且即便網(wǎng)絡(luò)爬蟲破解了上述識別方法,也會極大的消耗網(wǎng)絡(luò)爬蟲自身的資源,降低網(wǎng)絡(luò)爬蟲訪問網(wǎng)頁的頻率。
圖8為本申請網(wǎng)絡(luò)爬蟲識別裝置再一個實施例的結(jié)構(gòu)示意圖,本實施例中的網(wǎng)絡(luò)爬蟲識別裝置可以作為客戶端,或者客戶端的一部分實現(xiàn)本申請圖4所示實施例的流程,如圖8所示,該網(wǎng)絡(luò)爬蟲識別裝置可以包括:獲取模塊81和發(fā)送模塊82;
獲取模塊81,用于在網(wǎng)頁渲染完畢后,獲取當前渲染的網(wǎng)頁的圖片和上述網(wǎng)頁的URL;
發(fā)送模塊82,用于將獲取模塊81獲取的上述網(wǎng)頁的圖片和上述網(wǎng)頁的URL發(fā)送給服務(wù)器,以便服務(wù)器根據(jù)上述URL獲取樣本圖片,并根據(jù)相似度與預設(shè)閾值的比較,識別上 述客戶端是否為網(wǎng)絡(luò)爬蟲,上述相似度為上述網(wǎng)頁的圖片與上述樣本圖片的相似度。
其中,上述預設(shè)閾值可以在具體實現(xiàn)時動態(tài)設(shè)置,本實施例對上述預設(shè)閾值的大小不作限定。
上述網(wǎng)絡(luò)爬蟲識別裝置中,在網(wǎng)頁渲染完畢后,獲取模塊81獲取當前渲染的網(wǎng)頁的圖片和上述網(wǎng)頁的URL,發(fā)送模塊82將上述網(wǎng)頁的圖片和上述網(wǎng)頁的URL發(fā)送給服務(wù)器,以便上述服務(wù)器根據(jù)上述URL獲取樣本圖片,并根據(jù)上述網(wǎng)頁的圖片與上述樣本圖片的相似度與預設(shè)閾值的比較,識別上述客戶端不是網(wǎng)絡(luò)爬蟲。該裝置對網(wǎng)絡(luò)爬蟲識別的可靠性較高,不影響正常用戶瀏覽網(wǎng)頁的流暢性,并且即便網(wǎng)絡(luò)爬蟲破解了上述識別方法,也會極大的消耗網(wǎng)絡(luò)爬蟲自身的資源,降低網(wǎng)絡(luò)爬蟲訪問網(wǎng)頁的頻率。
圖9為本申請網(wǎng)絡(luò)爬蟲識別裝置再一個實施例的結(jié)構(gòu)示意圖,本實施例中的網(wǎng)絡(luò)爬蟲識別裝置可以作為服務(wù)器,或服務(wù)器的一部分實現(xiàn)本發(fā)明圖5所示實施例的流程。如圖9所示,該網(wǎng)絡(luò)爬蟲識別裝置可以包括:接收模塊91和識別模塊92;
其中,接收模塊91,用于接收客戶端的連接信息。其中,上述客戶端的連接信息包括客戶端的IP地址和上述客戶端的連接時間;進一步地,上述客戶端的連接信息還可以包括用戶代理(user agent)和上述客戶端的用戶標識等可以標記該客戶端的信息。
識別模塊92,用于當接收模塊91接收的上述客戶端的連接信息在待驗證客戶端庫中,并且上述客戶端的連接信息在上述待驗證客戶端庫中存在的時間超過預設(shè)時長時,識別上述客戶端為網(wǎng)絡(luò)爬蟲。
其中,上述預設(shè)時長可以在具體實現(xiàn)時根據(jù)業(yè)務(wù)形態(tài)動態(tài)設(shè)置,本實施例對上述預設(shè)時長的長短不作限定,舉例來說,上述預設(shè)時長可以為10秒。
上述網(wǎng)絡(luò)爬蟲識別裝置中,接收模塊91接收客戶端的連接信息之后,如果上述客戶端的連接信息在待驗證客戶端庫中,并且上述客戶端的連接信息在待驗證客戶端庫中存在的時間超過預設(shè)時長,則識別模塊92識別上述客戶端為網(wǎng)絡(luò)爬蟲。該裝置對網(wǎng)絡(luò)爬蟲識別的可靠性較高,不影響正常用戶瀏覽網(wǎng)頁的流暢性,用戶體驗較好。
圖10為本申請網(wǎng)絡(luò)爬蟲識別裝置再一個實施例的結(jié)構(gòu)示意圖,與圖9所示的網(wǎng)絡(luò)爬蟲識別裝置相比,不同之處在于,圖10所示的網(wǎng)絡(luò)爬蟲識別裝置還可以包括:保存模塊93和判斷模塊94;
保存模塊93,用于在識別模塊92識別上述客戶端為網(wǎng)絡(luò)爬蟲之后,將上述客戶端的連接信息存入網(wǎng)絡(luò)爬蟲庫。
保存模塊93,還用于當接收模塊91接收的上述客戶端的連接信息不在待驗證客戶端庫中時,將上述客戶端的連接信息和上述客戶端當前訪問的URL存入待驗證客戶端庫。
判斷模塊94,用于判斷接收模塊91接收的上述客戶端的連接信息是否在網(wǎng)絡(luò)爬蟲庫中;
識別模塊92,還用于當判斷模塊94確定上述客戶端的連接信息在網(wǎng)絡(luò)爬蟲庫中時,識別上述客戶端為網(wǎng)絡(luò)爬蟲。
上述網(wǎng)絡(luò)爬蟲識別裝置對網(wǎng)絡(luò)爬蟲識別的可靠性較高,不影響正常用戶瀏覽網(wǎng)頁的流暢性,用戶體驗較好。
需要說明的是,在本申請的描述中,術(shù)語“第一”、“第二”等僅用于描述目的,而不能理解為指示或暗示相對重要性。此外,在本申請的描述中,除非另有說明,“多個”的含義是兩個或兩個以上。
流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現(xiàn)特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本申請的優(yōu)選實施方式的范圍包括另外的實現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時的方式或按相反的順序,來執(zhí)行功能,這應被本申請的實施例所屬技術(shù)領(lǐng)域的技術(shù)人員所理解。
應當理解,本申請的各部分可以用硬件、軟件、固件或它們的組合來實現(xiàn)。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實現(xiàn)。例如,如果用硬件來實現(xiàn),和在另一實施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項或他們的組合來實現(xiàn):具有用于對數(shù)據(jù)信號實現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(Programmable Gate Array;以下簡稱:PGA),現(xiàn)場可編程門陣列(Field Programmable Gate Array;以下簡稱:FPGA)等。
本技術(shù)領(lǐng)域的普通技術(shù)人員可以理解實現(xiàn)上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,該程序在執(zhí)行時,包括方法實施例的步驟之一或其組合。
此外,本申請各個實施例中的各功能模塊可以集成在一個處理模塊中,也可以是各個模塊單獨物理存在,也可以兩個或兩個以上模塊集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質(zhì)中。
上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
在本說明書的描述中,參考術(shù)語“一個實施例”、“一些實施例”、“示例”、“具體示例”、 或“一些示例”等的描述意指結(jié)合該實施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點包含于本申請的至少一個實施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結(jié)合。
盡管上面已經(jīng)示出和描述了本申請的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本申請的限制,本領(lǐng)域的普通技術(shù)人員在本申請的范圍內(nèi)可以對上述實施例進行變化、修改、替換和變型。