一種通用的網(wǎng)絡爬蟲模擬登錄方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機軟件技術(shù)領(lǐng)域,尤其涉及一種通用的網(wǎng)絡爬蟲模擬登錄方法及系統(tǒng)。
【背景技術(shù)】
[0002]隨著網(wǎng)絡的迅速發(fā)展,萬維網(wǎng)成為大量信息的載體,如何有效地提取并利用這些信息成為一個巨大的挑戰(zhàn)。網(wǎng)絡爬蟲是一個自動提取網(wǎng)頁的程序,它從萬維網(wǎng)上下載網(wǎng)頁,是搜索引擎的重要組成,其一般是從一個或若干初始網(wǎng)頁的URL開始,獲得初始網(wǎng)頁上的URL,在抓取網(wǎng)頁的過程中,不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統(tǒng)的一定停止條件。
[0003]在網(wǎng)絡爬蟲爬取網(wǎng)站內(nèi)容時,大部分網(wǎng)站要求驗證用戶信息后才可以訪問網(wǎng)站的頁面,因此爬蟲中都會實現(xiàn)一些基本的模擬登錄功能,能實現(xiàn)對多數(shù)網(wǎng)站的模擬登錄,之后爬取網(wǎng)站頁面內(nèi)容。然而隨著技術(shù)的不斷發(fā)展,網(wǎng)站的驗證機制越來越復雜,基本的模擬登錄已經(jīng)無法應對。
[0004]1.業(yè)界現(xiàn)在通常的做法是采用基本的模擬登錄方法來應對驗證機制比較簡單的網(wǎng)站,對于驗證復雜的網(wǎng)站采用針對性定制開發(fā)的方法來模擬登陸:對特定站點進行手工登錄,截取登錄過程中的網(wǎng)絡數(shù)據(jù)包,分析網(wǎng)站的認證機制及認證參數(shù),最后編寫程序模擬登錄過程。這種方案的缺點是開發(fā)工作量很大,站點認證規(guī)則變化的時候需要修改原先的程序。
[0005]2.采用人工干預的方式來進行爬蟲的模擬登錄:爬蟲爬取特定網(wǎng)站時先彈出網(wǎng)站的登陸頁面,然后由人工進行用戶、密碼等認證信息的錄入,驗證通過后再由爬蟲進行網(wǎng)站頁面內(nèi)容的抓取。這種方案的缺點是需要人工參與,無法實現(xiàn)全自動化內(nèi)容爬取。
[0006]現(xiàn)有技術(shù)中公開了一種“支持人工會話嫁接的網(wǎng)絡爬蟲系統(tǒng)和實現(xiàn)方法”,公開號為:CN104298716A,公開日為:2015-01_21的中國專利,該發(fā)明涉及一種支持人工會話嫁接的網(wǎng)絡爬蟲系統(tǒng)和實現(xiàn)方法。首先分析要爬取的目標網(wǎng)站,將登錄頁面設為初始頁面;用戶模擬模塊與目標網(wǎng)站建立網(wǎng)絡連接,為人工操作提供信息輸入接口;人工智力參與模塊輸入所需要的信息并傳遞給用戶模擬模塊;用戶模擬模塊定位登錄頁面中的輸入框和登錄按鈕,輸入相關(guān)信息并通過網(wǎng)絡訪問模塊外發(fā)到目標網(wǎng)站進行登錄;登錄完成后用戶模擬模塊打開爬蟲要爬取的頁面,并將頁面的回應信息傳遞給爬蟲模塊;爬蟲模塊獲得執(zhí)行權(quán)限后,沿用人工在用戶模擬模塊中創(chuàng)建的網(wǎng)絡會話,訪問目標網(wǎng)站,爬取網(wǎng)站內(nèi)容。該發(fā)明將人工智力參與所建立的網(wǎng)絡會話用于爬蟲模塊,能夠讓網(wǎng)絡爬蟲獲得與真人上網(wǎng)完全相同的網(wǎng)絡訪問能力。該發(fā)明需要人工參與,才能完成網(wǎng)絡爬取網(wǎng)站內(nèi)容。且該發(fā)明實現(xiàn)的技術(shù)方案與本專利申請并不相同。
【發(fā)明內(nèi)容】
[0007]本發(fā)明要解決的技術(shù)問題之一,在于提供一種通用的網(wǎng)絡爬蟲模擬登錄方法,通過調(diào)用無UI瀏覽器模擬人工登錄過程并獲得cookie,爬蟲利用cookie實現(xiàn)免登陸訪問站點;減少開發(fā)工作量并避免了需要人工參與的弊端。
[0008]本發(fā)明問題之一是這樣實現(xiàn)的:一種通用的網(wǎng)絡爬蟲模擬登錄方法,所述方法為:
[0009]配置要爬取的各個站點的認證信息,所述認證信息包括:用戶名、密碼以及用戶權(quán)限;
[0010]網(wǎng)絡爬蟲調(diào)用無UI瀏覽器訪問各個站點;
[0011 ]無UI瀏覽器模擬人工登錄過程,認證成功后保存各個站點的cookie信息;
[0012]網(wǎng)絡爬蟲攜帶cookie信息訪問站點,爬取站點網(wǎng)頁內(nèi)容。
[0013]進一步的,所述無UI瀏覽器模擬人工登錄過程,認證成功后保存各個站點的cookie信息,具體為:
[0014]步驟1、網(wǎng)絡爬蟲調(diào)用無UI瀏覽器訪問網(wǎng)頁API,將要訪問的網(wǎng)站登陸網(wǎng)頁地址傳給無UI瀏覽器;
[0015]步驟2、無UI瀏覽器加載網(wǎng)站登陸網(wǎng)頁,網(wǎng)絡爬蟲調(diào)用無UI瀏覽器的獲取網(wǎng)頁API,并獲得網(wǎng)頁的html內(nèi)容;
[0016]步驟3、網(wǎng)絡爬蟲分析獲得的html內(nèi)容查找登錄頁面的用戶名、密碼輸入域,填入站點的用戶名、密碼信息,調(diào)用無UI瀏覽器的提交表單API,將驗證信息提交給網(wǎng)站驗證;
[0017]步驟4、提交的驗證信息認證成功后,網(wǎng)絡爬蟲調(diào)用無UI瀏覽器獲得cookie接口,通過cookie接口取得該站點的cookie信息并保存。
[0018]進一步的,所述網(wǎng)絡爬蟲攜帶cookie信息訪問站點,爬取站點網(wǎng)頁內(nèi)容,具體為:網(wǎng)絡爬蟲發(fā)送http請求訪問站點,并在http請求中設置所述取得的cookie信息,在cookie失效前網(wǎng)絡爬蟲免登錄訪問站點,網(wǎng)絡爬取站點網(wǎng)頁內(nèi)容。
[0019]本發(fā)明要解決的技術(shù)問題之二,在于提供一種通用的網(wǎng)絡爬蟲模擬登錄系統(tǒng),通過調(diào)用無UI瀏覽器模擬人工登錄過程并獲得cookie,爬蟲利用cookie實現(xiàn)免登陸訪問站點;減少開發(fā)工作量并避免了需要人工參與的弊端。
[0020]本發(fā)明問題之二是這樣實現(xiàn)的:一種通用的網(wǎng)絡爬蟲模擬登錄系統(tǒng),所述系統(tǒng)包括:配置模塊、訪問模塊、模擬登錄模塊以及爬取網(wǎng)頁內(nèi)容模塊;
[0021 ]所述配置模塊,用于配置要爬取的各個站點的認證信息,所述認證信息包括:用戶名、密碼以及用戶權(quán)限;
[0022]所述訪問模塊,用于網(wǎng)絡爬蟲調(diào)用無UI瀏覽器訪問各個站點;
[0023]所述模擬登錄模塊,通過無UI瀏覽器模擬人工登錄過程,認證成功后保存各個站點的cookie信息;
[0024]所述爬取網(wǎng)頁內(nèi)容模塊,通過網(wǎng)絡爬蟲攜帶cookie信息訪問站點,爬取站點網(wǎng)頁內(nèi)容。
[0025]進一步的,所述模擬登錄模塊具體的實現(xiàn)方式為:
[0026]1、網(wǎng)絡爬蟲調(diào)用無UI瀏覽器訪問網(wǎng)頁API,將要訪問的網(wǎng)站登陸網(wǎng)頁地址傳給無UI瀏覽器;
[0027]2、無UI瀏覽器加載網(wǎng)站登陸網(wǎng)頁,網(wǎng)絡爬蟲調(diào)用無UI瀏覽器的獲取網(wǎng)頁API,并獲得網(wǎng)頁的html內(nèi)容;
[0028]3、網(wǎng)絡爬蟲分析獲得的html內(nèi)容查找登錄頁面的用戶名、密碼輸入域,填入站點的用戶名、密碼信息,調(diào)用無UI瀏覽器的提交表單API,將驗證信息提交給網(wǎng)站驗證;
[0029]4、提交的驗證信息認證成功后,網(wǎng)絡爬蟲調(diào)用無UI瀏覽器獲得cookie接口,通過cookie接口取得該站點的cookie信息并保存。
[0030]進一步的,所述網(wǎng)絡爬蟲攜帶cookie信息訪問站點,爬取站點網(wǎng)頁內(nèi)容,具體為:網(wǎng)絡爬蟲發(fā)送http請求訪問站點,并在http請求中設置所述取得的cookie信息,在cookie失效前網(wǎng)絡爬蟲免登錄訪問站點,網(wǎng)絡爬取站點網(wǎng)頁內(nèi)容。
[0031]本發(fā)明具有如下優(yōu)點:本發(fā)明通過調(diào)用無UI瀏覽器模擬人工登錄過程,認證成功后保存cookie,爬取利用cookie實現(xiàn)免登陸訪問站點爬取站點內(nèi)容。解決了爬蟲模擬登錄過程需要人工參與或需要針對特定站點進行定制程序開發(fā)的問題,減少開發(fā)工作量并避免了需要人工參與的弊端。
【附圖說明】
[0032]圖1為本發(fā)明方法流程示意圖。
[0033]圖2為本發(fā)明系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0034]請參閱圖1所示,本發(fā)明的一種通用的網(wǎng)絡爬蟲模擬登錄方法,所述方法為:
[0035]配置要爬取的各個站點的認證信息,所述認證信息包括:用戶名、密碼以及用戶權(quán)限;該認證信息一般保存在數(shù)據(jù)庫中;
[0036]網(wǎng)絡爬蟲調(diào)用無UI瀏覽器訪問各個站點;
[0037]無