用于識別網(wǎng)絡(luò)機器人的方法和設(shè)備的制作方法
【專利摘要】本發(fā)明的各實施方式涉及一種用于識別網(wǎng)絡(luò)機器人的方法和設(shè)備。具體地,本發(fā)明的各實施方式所提供的方法包括以下步驟:在服務(wù)器端生成不可見的標簽;以及根據(jù)所述不可見的標簽是否被觸發(fā)來判斷客戶端是否為網(wǎng)絡(luò)機器人。另外,本發(fā)明的各實施方式還提供了與所述方法對應(yīng)的設(shè)備。通過使用本發(fā)明的各實施方式提供的方法和設(shè)備能夠以較高的準確率識別網(wǎng)絡(luò)機器人。
【專利說明】用于識別網(wǎng)絡(luò)機器人的方法和設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的各實施方式總體上涉及計算機領(lǐng)域,并且更具體地涉及一種用于識別網(wǎng)絡(luò)機器人的方法和設(shè)備。
【背景技術(shù)】
[0002]網(wǎng)絡(luò)機器人一般指在因特網(wǎng)等網(wǎng)絡(luò)上自動執(zhí)行預(yù)定任務(wù)的軟件程序。許多網(wǎng)絡(luò)機器人被用于實現(xiàn)惡意目的和/或占用過多帶寬資源、計算資源,因此識別這些網(wǎng)絡(luò)機器人并限制其行為是很重要的。又因為許多網(wǎng)絡(luò)機器人在一定程度上模仿人類用戶的行為,所以識別網(wǎng)絡(luò)機器人往往是困難的。
[0003]例如,存在幫助網(wǎng)絡(luò)游戲玩家取得不正當收益的機器人、在社交網(wǎng)絡(luò)或論壇上自動發(fā)布廣告的機器人、自動張貼指向某網(wǎng)站的鏈接以提高該網(wǎng)站的搜索引擎排名的機器人、在依賴于用戶評價的網(wǎng)站(諸如,餐館點評類網(wǎng)站、電子商務(wù)網(wǎng)站等)上自動發(fā)布用戶評價的機器人、幫助用戶進行搶購的機器人等等。
[0004]現(xiàn)有技術(shù)中一種識別網(wǎng)絡(luò)機器人的手段是驗證碼,例如,顯示一串可能經(jīng)過變形處理的字符串并要求客戶端輸入所顯示的字符串,從而將不能正確識別該字符串的客戶端識別為機器人。然而,已經(jīng)存在通過計算機文字識別、人力批量處理等方式破解驗證碼的方法。
【發(fā)明內(nèi)容】
[0005]為了解決上述問題,本發(fā)明提供了一種用于識別網(wǎng)絡(luò)機器人的方法和設(shè)備,利用所述方法和設(shè)備,能夠以較高的準確率識別網(wǎng)絡(luò)機器人。
[0006]根據(jù)本發(fā)明的一方面,提供了一種用于識別網(wǎng)絡(luò)機器人的方法,其包括以下步驟:在服務(wù)器端生成不可見的標簽;以及根據(jù)所述不可見的標簽是否被觸發(fā)來判斷客戶端是否為網(wǎng)絡(luò)機器人。
[0007]根據(jù)本發(fā)明的另一方面,提供了一種用于識別網(wǎng)絡(luò)機器人的設(shè)備,其包括:生成裝置,配置用于在服務(wù)器端生成不可見的標簽;以及判斷裝置,配置用于根據(jù)所述不可見的標簽是否被觸發(fā)來判斷客戶端是否為網(wǎng)絡(luò)機器人。
[0008]本發(fā)明示例性實施方式提供的示例性解決方案至少可以帶來如下顯著的技術(shù)效果:通過對標簽進行復(fù)雜的隱藏,保證正常用戶無法觸發(fā)該標簽,從而能夠以較高的準確率識別出通過代碼解析獲得該標簽的網(wǎng)絡(luò)機器人。
【專利附圖】
【附圖說明】
[0009]通過參考附圖閱讀下文的詳細描述,本發(fā)明實施方式的上述以及其他目的、特征和優(yōu)點將變得易于理解。在附圖中,以示例性而非限制性的方式示出了本發(fā)明的若干實施方式,其中:
[0010]圖1示出了根據(jù)本發(fā)明的一個實施方式的用于識別網(wǎng)絡(luò)機器人的方法100的流程圖;
[0011]圖2示出了根據(jù)本發(fā)明的一個實施方式的用于識別網(wǎng)絡(luò)機器人的設(shè)備200的示意框圖;以及
[0012]圖3示出了適于用來實踐本發(fā)明實施方式的計算機系統(tǒng)300的示意框圖。
【具體實施方式】
[0013]下面將參考若干示例性實施方式來描述本發(fā)明的原理和精神。應(yīng)當理解,給出這些實施方式僅僅是為了使本領(lǐng)域技術(shù)人員能夠更好地理解進而實現(xiàn)本發(fā)明,而并非以任何方式限制本發(fā)明的范圍。
[0014]下面參考圖1,其示出了根據(jù)本發(fā)明的一個實施方式的用于識別網(wǎng)絡(luò)機器人的方法100的流程圖。
[0015]在步驟SlOl中,在服務(wù)器端生成不可見的標簽。通過瀏覽器的某些特性,可以對其中的一個或多個標簽(例如,該標簽可以是HTML(超文本標記語言)標簽)進行布局(例如,對頁面中某一圖片的位置、大小、顏色以及透明度進行設(shè)置),從而可以將標簽隱藏(例如,該標簽是透明的)。但是,該標簽又是確實存在的。應(yīng)當注意,上述隱藏只是針對用戶而言;而對于網(wǎng)絡(luò)機器人而言,由于網(wǎng)絡(luò)機器人對頁面的解析普遍采用標簽解析,因此,網(wǎng)絡(luò)機器人在對于頁面進行數(shù)據(jù)分析以及數(shù)據(jù)抓取時,其會將對于正常用戶而言是隱藏的標簽也一起抓取。
[0016]在步驟S102中,根據(jù)所述不可見的標簽是否被觸發(fā)來判斷客戶端是否為網(wǎng)絡(luò)機器人。在客戶端登陸到服務(wù)器之后,不管是人類用戶還是網(wǎng)絡(luò)機器人,為了繼續(xù)進行后續(xù)操作,通常會抓取頁面上的標簽。然而,正常用戶能夠抓取的標簽與網(wǎng)絡(luò)機器人能夠抓取的標簽存在區(qū)別。因此,通過根據(jù)這樣的區(qū)別來判斷客戶端是否網(wǎng)絡(luò)機器人,能夠以較高的準確率識別網(wǎng)絡(luò)機器人。
[0017]在一個實施方式中,在服務(wù)器端生成不可見的標簽可以通過腳本或CSS (層疊樣式表)將所述標簽設(shè)置為透明來實現(xiàn)的。頁面中的標簽通常具有各種屬性(例如,位置、大小、顏色以及透明度),通過腳本或CSS可以對標簽的屬性進行設(shè)置(例如,將待隱藏的標簽設(shè)置為透明),從而實現(xiàn)頁面中的標簽不可見。
[0018]在一個實施方式中,在服務(wù)器端生成不可見的標簽還可以通過腳本或CSS將所述標簽覆蓋來實現(xiàn)的。例如,在頁面中,可以通過腳本或CSS生成一個透明的圖片,并通過對該透明的圖片的屬性(例如,位置)進行設(shè)置將其覆蓋在待隱藏的標簽上,從而實現(xiàn)標簽不可見。
[0019]在一個實施方式中,在服務(wù)器端生成不可見的標簽可以是隨機進行的。以此方式,避免了網(wǎng)絡(luò)機器人預(yù)測被隱藏的標簽并進而進行相應(yīng)的行為,如不對預(yù)測被隱藏的標簽進行抓取等。另外,在服務(wù)器端隨機地生成不可見的標簽,包括但不限于:在服務(wù)器端隨機地生成任意數(shù)目的待隱藏的標簽;以及在服務(wù)器端隨機地生成任意位置的待隱藏的標簽。
[0020]在一個實施方式中,在服務(wù)器端生成不可見的標簽是加密進行的。例如,可以通過預(yù)先設(shè)定的規(guī)則或者通過加密的javascript對頁面的CSS進行動態(tài)改變等等。由于頁面的CSS是靜態(tài)設(shè)置的,即,CSS預(yù)先設(shè)置好了頁面的布局,例如,哪些標簽被隱藏以及在什么地方被隱藏。而通過上述方式,在對頁面的CSS進行了動態(tài)改變之后,增加了網(wǎng)絡(luò)機器人解析頁面的CSS從而判斷出該頁面中被隱藏的標簽的成本。
[0021]在一個實施方式中,根據(jù)所述不可見的標簽是否被觸發(fā)來判斷客戶端是否為網(wǎng)絡(luò)機器人包括:如果客戶端對所述不可見的標簽進行了操作,則判斷所述客戶端為網(wǎng)絡(luò)機器人。對于正常用戶而言,通常只會對頁面上其看到的標簽進行操作。然而,網(wǎng)絡(luò)機器人由于其對頁面解析的特性,其可以抓取到正常用戶看不到的標簽,在隨后進行的操作中該網(wǎng)絡(luò)機器人可能會對這些正常用戶看不到的標簽進行操作。因此,通過判斷客戶端是否對正常用戶看不到的標簽進行了操作,可以判斷該客戶端是否網(wǎng)絡(luò)機器人。
[0022]以下通過人人網(wǎng)的好友推薦應(yīng)用來描述本發(fā)明的各實施方式,本領(lǐng)域技術(shù)人員應(yīng)當理解,下述示例僅是用于說明本發(fā)明的各實施方式而非用于限制本發(fā)明各實施方式的保護范圍。人人網(wǎng)的好友推薦應(yīng)用,即,當新的用戶在人人網(wǎng)上進行了注冊時,服務(wù)器可以通過該新的用戶提供的資料(例如,該用戶的基本信息、學校信息、工作信息和個人信息等),向其推薦好友。在服務(wù)器進行好友推薦應(yīng)用時,例如,服務(wù)器可能生成6個好友用于向該新用戶推薦。然而,在向該新用戶推薦好友時,例如,可以將第6個好友隱藏,S卩,如果該新用戶是正常用戶,則其只能看到服務(wù)器所推薦的5個好友(S卩,不包括被隱藏的第6個好友);而如果該新用戶是網(wǎng)絡(luò)服務(wù)器,則其可以抓取到所有6個好友(即,包括被隱藏的第6個好友),從而在隨后進行的操作(例如,對被隱藏的第6個好友進行的操作)中可以判斷出該新用戶是網(wǎng)絡(luò)機器人。
[0023]由于使用根據(jù)本發(fā)明的實施方式的方法來識別網(wǎng)絡(luò)機器人有可能觸發(fā)網(wǎng)絡(luò)機器人檢測到服務(wù)器使用了本發(fā)明的實施方式,所以優(yōu)選地在通過本發(fā)明的實施方式的方法識別出網(wǎng)絡(luò)機器人之后,通過其他方式或在其他過程中將網(wǎng)絡(luò)機器人禁用。
[0024]下面參考圖2,其示出了根據(jù)本發(fā)明的一個實施方式的用于識別網(wǎng)絡(luò)機器人的設(shè)備200的示意框圖。設(shè)備200包括:生成裝置201,配置用于在服務(wù)器端生成不可見的標簽;以及判斷裝置202,配置用于根據(jù)所述不可見的標簽是否被觸發(fā)來判斷客戶端是否為網(wǎng)絡(luò)機器人。
[0025]在一個實施方式中,在服務(wù)器端生成不可見的標簽是通過腳本或CSS將所述標簽設(shè)置為透明來實現(xiàn)的。
[0026]在一個實施方式中,在服務(wù)器端生成不可見的標簽是通過腳本或CSS將所述標簽覆蓋來實現(xiàn)的。
[0027]在一個實施方式中,在服務(wù)器端生成不可見的標簽是隨機進行的。
[0028]在一個實施方式中,在服務(wù)器端生成不可見的標簽是加密進行的。
[0029]在一個實施方式中,所述判斷裝置可以進一步被配置為:如果客戶端對所述不可見的標簽進行了操作,則判斷所述客戶端為網(wǎng)絡(luò)機器人。
[0030]為清晰起見,在圖2中并未示出各個裝置所包含的子裝置。然而,應(yīng)當理解,設(shè)備200中記載的裝置與分別參考圖1描述的方法100中的步驟相對應(yīng)。由此,上文針對圖1的方法100描述的操作和特征同樣適用于設(shè)備200及其中包含的裝置和子裝置,在此不再贅述。
[0031]應(yīng)當理解,設(shè)備200可以利用各種方式來實現(xiàn)。例如,在某些實施方式中,設(shè)備200可以利用軟件和/或固件模塊來實現(xiàn)。此外,設(shè)備200也可以利用硬件模塊來實現(xiàn)。例如,設(shè)備200可以實現(xiàn)為集成電路(IC)芯片或?qū)S眉呻娐?ASIC)。設(shè)備200也可以實現(xiàn)為片上系統(tǒng)(SOC)。此外,設(shè)備200也可以利用硬件模塊和軟件和/或固件模塊的組合來實現(xiàn)?,F(xiàn)在已知或者將來開發(fā)的其他方式也是可行的,本發(fā)明的范圍在此方面不受限制。
[0032]如圖3所示,計算機系統(tǒng)300可以包括:CPU(中央處理單元)301、RAM(隨機存取存儲器)302、ROM(只讀存儲器)303、系統(tǒng)總線304、硬盤控制器305、鍵盤控制器306、串行接口控制器307、并行接口控制器308、顯示控制器309、硬盤310、鍵盤311、串行外部設(shè)備312、并行外部設(shè)備313和顯示器314。在這些設(shè)備中,與系統(tǒng)總線304耦合的有CPU 301、RAM 302,ROM 303、硬盤控制器305、鍵盤控制器306、串行控制器307、并行控制器308和顯示控制器309。硬盤310與硬盤控制器305耦合,鍵盤311與鍵盤控制器306耦合,串行外部設(shè)備312與串行接口控制器307耦合,并行外部設(shè)備313與并行接口控制器308耦合,以及顯示器314與顯示控制器309耦合。應(yīng)當理解,圖3所述的結(jié)構(gòu)框圖僅僅為了示例的目的而示出的,而不是對本發(fā)明范圍的限制。在某些情況下,可以根據(jù)具體情況而增加或者減少某些設(shè)備。
[0033]應(yīng)當注意,本發(fā)明的實施方式可以通過硬件、軟件或者軟件和硬件的結(jié)合來實現(xiàn)。硬件部分可以利用專用邏輯來實現(xiàn);軟件部分可以存儲在存儲器中,由適當?shù)闹噶顖?zhí)行系統(tǒng),例如微處理器或者專用設(shè)計硬件來執(zhí)行。本領(lǐng)域的普通技術(shù)人員可以理解上述的設(shè)備和方法可以使用計算機可執(zhí)行指令和/或包含在處理器控制代碼中來實現(xiàn),例如在諸如磁盤、CD或DVD-ROM的載體介質(zhì)、諸如只讀存儲器(固件)的可編程的存儲器或者諸如光學或電子信號載體的數(shù)據(jù)載體上提供了這樣的代碼。本發(fā)明的設(shè)備及其模塊可以由諸如超大規(guī)模集成電路或門陣列、諸如邏輯芯片、晶體管等的半導(dǎo)體、或者諸如現(xiàn)場可編程門陣列、可編程邏輯設(shè)備等的可編程硬件設(shè)備的硬件電路實現(xiàn),也可以用由各種類型的處理器執(zhí)行的軟件實現(xiàn),也可以由上述硬件電路和軟件的結(jié)合例如固件來實現(xiàn)。
[0034]應(yīng)當注意,盡管在上文詳細描述中提及了設(shè)備的若干裝置或子裝置,但是這種劃分僅僅并非強制性的。實際上,根據(jù)本發(fā)明的實施方式,上文描述的兩個或更多裝置的特征和功能可以在一個裝置中具體化。反之,上文描述的一個裝置的特征和功能可以進一步劃分為由多個裝置來具體化。
[0035]此外,盡管在附圖中以特定順序描述了本發(fā)明方法的操作,但是,這并非要求或者暗示必須按照該特定順序來執(zhí)行這些操作,或是必須執(zhí)行全部所示的操作才能實現(xiàn)期望的結(jié)果。相反,流程圖中描繪的步驟可以改變執(zhí)行順序。附加地或備選地,可以省略某些步驟,將多個步驟合并為一個步驟執(zhí)行,和/或?qū)⒁粋€步驟分解為多個步驟執(zhí)行。
[0036]雖然已經(jīng)參考若干【具體實施方式】描述了本發(fā)明,但是應(yīng)該理解,本發(fā)明并不限于所公開的【具體實施方式】。本發(fā)明旨在涵蓋所附權(quán)利要求的精神和范圍內(nèi)所包括的各種修改和等同布置。所附權(quán)利要求的范圍符合最寬泛的解釋,從而包含所有這樣的修改及等同結(jié)構(gòu)和功能。
【權(quán)利要求】
1.一種用于識別網(wǎng)絡(luò)機器人的方法,其包括以下步驟: 在服務(wù)器端生成不可見的標簽;以及 根據(jù)所述不可見的標簽是否被觸發(fā)來判斷客戶端是否為網(wǎng)絡(luò)機器人。
2.根據(jù)權(quán)利要求1所述的方法,其中在服務(wù)器端生成不可見的標簽是通過腳本或CSS將所述標簽設(shè)置為透明來實現(xiàn)的。
3.根據(jù)權(quán)利要求1所述的方法,其中在服務(wù)器端生成不可見的標簽是通過腳本或CSS將所述標簽覆蓋來實現(xiàn)的。
4.根據(jù)權(quán)利要求1至3中任意一項所述的方法,其中在服務(wù)器端生成不可見的標簽是隨機進行的。
5.根據(jù)權(quán)利要求1至3中任意一項所述的方法,其中在服務(wù)器端生成不可見的標簽是加密進行的。
6.根據(jù)權(quán)利要求1所述的方法,其中根據(jù)所述不可見的標簽是否被觸發(fā)來判斷客戶端是否為網(wǎng)絡(luò)機器人包括:如果客戶端對所述不可見的標簽進行了操作,則判斷所述客戶端為網(wǎng)絡(luò)機器人。
7.一種用于識別網(wǎng)絡(luò)機器人的設(shè)備,其包括: 生成裝置,配置用于在服務(wù)器端生成不可見的標簽;以及 判斷裝置,配置用于根據(jù)所述不可見的標簽是否被觸發(fā)來判斷客戶端是否為網(wǎng)絡(luò)機器人。
8.根據(jù)權(quán)利要求7所述的設(shè)備,其中在服務(wù)器端生成不可見的標簽是通過腳本或CSS將所述標簽設(shè)置為透明來實現(xiàn)的。
9.根據(jù)權(quán)利要求7所述的設(shè)備,其中在服務(wù)器端生成不可見的標簽是通過腳本或CSS將所述標簽覆蓋來實現(xiàn)的。
10.根據(jù)權(quán)利要求7至9中任意一項所述的設(shè)備,其中在服務(wù)器端生成不可見的標簽是隨機進行的。
11.根據(jù)權(quán)利要求7至9中任意一項所述的設(shè)備,其中在服務(wù)器端生成不可見的標簽是加密進行的。
12.根據(jù)權(quán)利要求7所述的設(shè)備,其中根據(jù)所述不可見的標簽是否被觸發(fā)來判斷客戶端是否為網(wǎng)絡(luò)機器人包括:如果客戶端對所述不可見的標簽進行了操作,則判斷所述客戶端為網(wǎng)絡(luò)機器人。
【文檔編號】H04L29/06GK103856476SQ201210551708
【公開日】2014年6月11日 申請日期:2012年11月29日 優(yōu)先權(quán)日:2012年11月29日
【發(fā)明者】劉丹 申請人:北京千橡網(wǎng)景科技發(fā)展有限公司