版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、網(wǎng)絡(luò)爬蟲(網(wǎng)絡(luò)爬蟲(Spider)Java實現(xiàn)原理實現(xiàn)原理收藏收藏“網(wǎng)絡(luò)蜘蛛”或者說“網(wǎng)絡(luò)爬蟲”,是一種能訪問網(wǎng)站并跟蹤鏈接的程序,通過它,可快速地畫出一個網(wǎng)站所包含的網(wǎng)頁地圖信息。本文主要講述如何使用Java編程來構(gòu)建一個“蜘蛛”,我們會先以一個可復(fù)用的蜘蛛類包裝一個基本的“蜘蛛”,并在示例程序中演示如何創(chuàng)建一個特定的“蜘蛛”來掃描相關(guān)網(wǎng)站并找出死鏈接。Java語言在此非常適合構(gòu)建一個“蜘蛛”程序,其內(nèi)建了對HTTP協(xié)議的支持,通過它
2、可以傳輸大部分的網(wǎng)頁信息;其還內(nèi)建了一個HTML解析器,正是這兩個原因使Java語言成為本文構(gòu)建“蜘蛛”程序的首選。文章后面例1的示例程序,將會掃描一個網(wǎng)站,并尋找死鏈接。使用這個程序時需先輸入一個URL并單擊“Begin”按鈕,程序開始之后,“Begin”按鈕會變成“Cancel”按鈕。在程序掃描網(wǎng)站期間,會在“Cancel”按鈕之下顯示進度,且在檢查當前網(wǎng)頁時,也會顯示相關(guān)正常鏈接與死鏈接的數(shù)目,死鏈接將顯示在程序底部的滾動文本框中
3、。單擊“Cancel”按鈕會停止掃描過程,之后可以輸入一個新的URL;如果期間沒有單擊“Cancel”,程序?qū)恢边\行直到查找完所有網(wǎng)頁,此后,“Cancel”按鈕會再次變回“Begin”,表示程序已停止。下面將演示示例程序是如何與可復(fù)用“Spider”類交互的,示例程序包含在例1的CheckLinks類中,這個類實現(xiàn)了ISpiderReptable接口,如例2所示,正是通過這個接口,蜘蛛類才能與示例程序相交互。在這個接口中,定義了三
4、個方法:第一個方法是“spiderFoundURL”,它在每次程序定位一個URL時被調(diào)用,如果方法返回true,表示程序應(yīng)繼續(xù)執(zhí)行下去并找出其中的鏈接;第二個方法是“spiderURLErr”,它在每次程序檢測URL導(dǎo)致錯誤時被調(diào)用(如“404頁面未找到”);第三個方法是“spiderFoundEMail”,它在每次發(fā)現(xiàn)電子郵件地址時被調(diào)用。有了這三個方法,Spider類就能把相關(guān)信息反饋給創(chuàng)建它的程序了。在begin方法被調(diào)用后,“蜘
5、蛛”就開始工作了;為允許程序重繪其用戶界面,“蜘蛛”是作為一個單獨的線程啟動的。點擊“Begin”按鈕會開始這個后臺線程,當后臺線程運行之后,又會調(diào)用“CheckLinks”類的run方法,而run方法是由Spider對象實例化時啟動的,如下所示:spider=newSpider(this)spider.clear()base=newURL(url.getText())el方法,或“wkloadWaiting”中已不再剩有URL。這個過
6、程如下:cancel=falsewhile(!getWkloadWaiting().isEmpty()f(inti=0(iprocessURL((URL)list[i])當上述代碼遍歷“wkloadWaiting”時,它把每個需處理的URL都傳遞給“processURL”方法,而這個方法才是真正讀取并解析URL中HTML信息的。讀取并解析HTMLJava同時支持訪問URL內(nèi)容及解析HTML,而這正是“processURL”方法要做的。在
7、Java中讀取URL內(nèi)容相對還比較簡單,下面就是“processURL”方法實現(xiàn)此功能的代碼:URLConnectionconnection=url.openConnection()if((connection.getContentType()!=null)getWkloadProcessed().add(url)log(“Notprocessingbecausecontenttypeis:“connection.getContentT
8、ype())return首先,為每個傳遞進來的變量url中存儲的URL構(gòu)造一個“URLConnection”對象,因為網(wǎng)站上會有多種類型的文檔,而“蜘蛛”只對那些包含HTML,尤其是基于文本的文檔感興趣。前述代碼是為了確保文檔內(nèi)容以“text”打頭,如果文檔類型為非文本,會從等待區(qū)移除此URL,并把它添加到已處理區(qū),這也是為了保證不會再次訪問此URL。在對特定URL建立連接之后,接下來就要解析其內(nèi)容了。下面的代碼打開了URL連接,并讀取
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于java的網(wǎng)絡(luò)爬蟲的設(shè)計與實現(xiàn)
- 爬蟲原理
- 網(wǎng)絡(luò)爬蟲的設(shè)計與實現(xiàn)
- 并行網(wǎng)絡(luò)爬蟲設(shè)計與實現(xiàn).pdf
- 網(wǎng)絡(luò)爬蟲
- 主題網(wǎng)絡(luò)爬蟲的研究與實現(xiàn).pdf
- 主題網(wǎng)絡(luò)爬蟲的研究和實現(xiàn).pdf
- 網(wǎng)絡(luò)爬蟲系統(tǒng)的研究與實現(xiàn).pdf
- Inar網(wǎng)絡(luò)爬蟲的設(shè)計與實現(xiàn).pdf
- 網(wǎng)絡(luò)蜘蛛,網(wǎng)絡(luò)爬蟲
- 網(wǎng)絡(luò)爬蟲文檔
- 網(wǎng)絡(luò)爬蟲詳解
- 網(wǎng)絡(luò)輿情爬蟲系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 畢業(yè)設(shè)計---網(wǎng)絡(luò)爬蟲的設(shè)計與實現(xiàn)
- 網(wǎng)絡(luò)爬蟲的設(shè)計與實現(xiàn)(完整版)
- 面向主題的網(wǎng)絡(luò)爬蟲設(shè)計與實現(xiàn).pdf
- 網(wǎng)絡(luò)爬蟲的設(shè)計與實現(xiàn)畢設(shè)論文
- 基于領(lǐng)域的網(wǎng)絡(luò)爬蟲研究與實現(xiàn).pdf
- 面向DEEPWEB挖掘網(wǎng)絡(luò)爬蟲設(shè)計和實現(xiàn).pdf
- 網(wǎng)絡(luò)爬蟲外文翻譯---基于網(wǎng)絡(luò)爬蟲的有效url緩存
評論
0/150
提交評論