網站訪問請求的管理方法、裝置及系統的制作方法
【技術領域】
[0001]本發明屬于計算機及網絡技術領域,尤其涉及一種網站訪問請求的管理方法及裝置。
【背景技術】
[0002]網絡爬蟲是一種按照一定的規則,自動地抓取萬維網信息的程序或者腳本。隨著搜索引擎技術的發展,網絡爬蟲已經成了很普及的網絡搜索技術,除了專門做搜索的谷歌、雅虎、微軟以及百度以外,幾乎每個大型門戶網站都有自己的搜索引擎,還有各種不知名企業的用于爬取網站數據的各種爬蟲系統。對于一個內容型驅動的網站來說,受到網絡爬蟲的光顧是不可避免的。
[0003]—些智能的搜索引擎爬蟲爬取網站數據的頻率比較合理,對網站資源消耗比較少。但是很多糟糕的網絡爬蟲,經常并發幾百甚至上千個請求循環重復抓取網站數據,這種網絡爬蟲對中小型網站來說,往往是毀滅性打擊,特別是一些缺乏爬蟲編寫經驗的程序員寫出來的爬蟲破壞力極強,由于通過多進程高并發的方式訪問網站,很容易使得網站系統流量急劇上升,網站服務器和數據庫的負載加重,服務器磁盤I/O (Input/Output,輸入/輸出端口 )讀寫和網絡I/O請求頻繁,有可能造成性能瓶頸,嚴重的時候甚至導致網站癱瘓。
[0004]基于以上原因,很多網站都采取了一些反爬蟲的措施,例如根據訪問頻率判斷是否網絡爬蟲請求,并對判斷為網絡爬蟲請求的網站訪問請求進行限制。但是,上述反爬蟲措施并不完善,網絡爬蟲的設計者往往可以通過采取一些有針對性地策略來規避現有的反爬蟲措施,如:使用代理技術模擬偽裝成瀏覽器訪問以降低訪問頻率、以及通過不斷變換IP地址(Internet Protocol Address,互聯網協議地址)進行網站頁面數據的爬取等等。因此,現有技術無法對基于網絡爬蟲技術的網站訪問請求進行有效管理。
【發明內容】
[0005]本發明提供一種網站訪問請求的管理方法及裝置,用以通過將IP地址限制與二維碼相結合,達到有效防止終端設備通過偽裝成瀏覽器訪問、或不斷變換IP地址的方式抓取網站數據的目的,實現對網站訪問請求的有效管理。
[0006]本發明提供一種網站訪問請求的管理方法,應用于網頁服務器,包括:
[0007]攔截終端設備發起的網站訪問請求,判斷所述網站訪問請求是否通過瀏覽器發起;
[0008]若所述網站訪問請求并非通過瀏覽器發起,則將所述網站訪問請求識別為網絡爬蟲請求,并拒絕所述網站訪問請求,若所述網站訪問請求通過瀏覽器發起,則獲取預置時長內所述終端設備發起的所有網站訪問請求的相關訪問參數,根據所述相關訪問參數分析判斷所述網站訪問請求是否疑似網絡爬蟲請求,所述相關訪問參數包括:預置時長內所述終端設備每一次發起網站訪問請求時使用的互聯網協議IP地址、發起時間以及流量消耗;
[0009]若所述網站訪問請求非疑似網絡爬蟲請求,則放行所述網站訪問請求,若所述網站訪問請求疑似網絡爬蟲請求,生成用于身份驗證的二維碼并返回給所述終端設備,使得所述終端設備通過掃描所述二維碼進行身份驗證;
[0010]若所述終端設備通過身份驗證,則放行所述網站訪問請求,若所述終端設備未通過身份驗證,則將所述網站訪問請求識別為網絡爬蟲請求,并拒絕所述網站訪問請求。
[0011]本發明提供一種網站訪問請求的管理裝置,包括:
[0012]攔截模塊,用于攔截終端設備發起的網站訪問請求;
[0013]判斷模塊,用于判斷所述網站訪問請求是否通過瀏覽器發起;
[0014]管理模塊,用于若所述判斷模塊的判斷結果為所述網站訪問請求并非通過瀏覽器發起,則將所述網站訪問請求識別為網絡爬蟲請求,并拒絕所述網站訪問請求;
[0015]獲取模塊,用于若所述判斷模塊的判斷結果為所述網站訪問請求通過瀏覽器發起,則獲取預置時長內所述終端設備發起的所有網站訪問請求的相關訪問參數;
[0016]所述判斷模塊,還用于根據所述相關訪問參數分析判斷所述網站訪問請求是否疑似網絡爬蟲請求,所述相關訪問參數包括:預置時長內所述終端設備每一次發起網站訪問請求時使用的互聯網協議IP地址、發起時間以及流量消耗;
[0017]所述管理模塊,還用于若所述判斷模塊的判斷結果為所述網站訪問請求非疑似網絡爬蟲請求,則放行所述網站訪問請求;
[0018]二維碼驗證模塊,用于若所述判斷模塊的判斷結果為所述網站訪問請求疑似網絡爬蟲請求,則生成用于身份驗證的二維碼并返回給所述終端設備,使得所述終端設備通過掃描所述二維碼進行身份驗證,以及根據所述二維碼對所述終端設備進行身份驗證;
[0019]所述管理模塊,還用于若所述二維碼驗證模塊的驗證結果為所述終端設備通過身份驗證,則放行所述網站訪問請求,若所述二維碼驗證模塊的驗證結果為所述終端設備未通過身份驗證,則將所述網站訪問請求識別為網絡爬蟲請求,并拒絕所述網站訪問請求。
[0020]從上述本發明實施例可知,本發明通過將IP地址限制與二維碼相結合,在攔截的網站訪問請求疑似網絡爬蟲請求時,使用二維碼圖像加密技術,根據身份驗證信息生成二維碼并返回終端設備,使得終端設備只能在以人工掃描二維碼的方式通過身份驗證時,才能請求到網站數據,既可保證用戶登錄賬號信息的安全,不容易造成賬號泄露的安全隱患,又可有效防止終端設備通過偽裝成瀏覽器訪問、或利用不斷變換IP地址的方式抓取網站數據,實現對網站訪問請求的有效管理。
【附圖說明】
[0021]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
[0022]圖1是本發明第一實施例提供的網站訪問請求的管理方法的實現流程示意圖;
[0023]圖2是本發明第二實施例提供的網站訪問請求的管理方法的實現流程示意圖;
[0024]圖3是本發明第三實施例提供的網站訪問請求的管理裝置的結構示意圖;
[0025]圖4是本發明第四實施例提供的網站訪問請求的管理裝置的結構示意圖。
【具體實施方式】
[0026]為使得本發明的發明目的、特征、優點能夠更加的明顯和易懂,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而非全部實施例。基于本發明中的實施例,本領域技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0027]請參閱圖1,圖1是本發明第一實施例提供的網站訪問請求的管理方法流程示意圖,該方法可應用于Web (網頁)服務器中,實現對來自于終端設備的網站訪問請求的管理。終端設備可以是智能手機、平板電腦等移動終端設備,也可以是臺式計算機。終端設備根據用戶的網頁瀏覽操作,向Web服務器發起網站訪問請求。如圖1所示,該方法包括以下步驟:
[0028]S101、攔截終端設備發起的網站訪問請求,判斷該網站訪問請求是否通過瀏覽器發起;
[0029]Web服務器配置有網站訪問請求監管模塊和處理模塊,網站訪問請求監管模塊用于監控管理終端設備發送的網站訪問請求,處理模塊用于對該網站訪問請求進行處理,根據處理結果返回該網站訪問請求請求訪問的網站頁面的數據。通過該網站訪問請求監管模塊攔截終端設備發起的網站訪問請求,并判斷該網站訪問請求是否通過瀏覽器發起。
[0030]通過瀏覽器發起的網站訪問請求,會請求加載包含在網站頁面中的特定文件,如頁面中JavaScript (js)或CSS (Cascading Style Sheets,層疊樣式表)或圖片文件,而網絡爬蟲請求主要關注網頁上的頁面內容,因此只會通過http (HyperText TransferProtocol,超文本傳輸協議)客戶端請求下載頁面的html (HyperText Markup Language,超級文本標記語言)源代碼。基于上述原理,通過判斷該網站訪問請求是否請求加載頁面中的指定類型的文件,可識別該網站訪問請求是否通過瀏覽器發起。當一個網站訪問請求被識別出來不是通過瀏覽器發起時,該請求一定是爬蟲請求。
[0031]若該網站訪問請求并非通過瀏覽器發起,則執行步驟S102 ;若該網站訪問請求通過瀏覽器發起,則執行步驟S103。
[0032]S102、將該網站訪問請求識別為網絡爬蟲請求,并拒絕該網站訪問請求;
[0033]若該網站訪問請求并非由終端設備通過瀏覽器發起,或者該終端設備未通過二維碼身份驗證,則識別該網站訪問請求為網絡爬蟲請求,并拒絕該網站訪問請求。
[0034]S103、獲取預置時長內該終端設備發起的所有網站訪問請求的相關訪問參數,根據該相關訪問參數分析判斷該網站訪問請求是否疑似網絡爬蟲請求;
[0035]若該網站訪問請求由終端設備通過瀏覽器發起,則獲取預置時長內,該終端設備發起的所有網站訪問請求的相關訪問參數,其中該相關訪問參數可以但不限于包括:預置時長內該終端設備每一次發起網站訪問請求時使用的IP地址、發起時間以及流量消耗。
[0036]根據該相關訪問參數得到該終端設備在預置時長內發起網站訪問請求的流量消耗規律及頻率規律,分析判斷該流量消耗規律是否符合預置的疑似網絡爬蟲請求的流量消耗特征規律以及該頻率規律是否符合預置的疑似網絡爬蟲請求的頻率特征規律;若該流量消耗規律不符合該流量消耗特征規律,且該頻率規律不符合該頻率特征規律,則確定該網站訪問請求非疑似網絡爬蟲請求,執行步驟S106 ;若該流量消耗規律符合該流量消耗特征規律,或該頻率規律符合該頻率特征規律,也即二者中有任意一項符合,則確定該網站訪問請求疑似網絡爬蟲請求,執行步驟S104。
[0037]S104、生成用于身份驗證的二維碼并返回給該終端設備,使得該終端設備通過掃描該二維碼進行身份驗證;
[0038]若該網站訪問請求疑似網絡爬蟲請求,則根據預置的身份驗證信息生成用于身份驗證的二維碼。其中預置的身份驗證信息可以但不限于包括用戶預先注冊的登錄帳號和登錄密碼。將預置的身份驗證信息封裝于二維碼中,并將該二維碼發送給移動終端,使得該終端設備通過利用第三方通信工具掃描該二維碼的方式進行登錄。采用二維碼的驗證形式,可以保證登錄密碼不被泄露,保障登錄驗證信息的安全。
[0039]S105、判斷該終端設備是否通過身份驗證;
[0040]接收該移動終端通過掃描該二維碼返回的身份驗證信息,將該身份驗證信息與預置的身份驗證信息進行匹配,若二者匹配,則判定該移動終端通過身份驗證,執行步驟S106:放行該網站訪問請求,若二者不匹配,則判定該移動終端未通過身份驗證,執行步驟S102:將該網站訪問請求識別為網絡爬蟲請求,并拒絕該網站訪問請求。
[0041 ] S106、放行該