版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
.-網絡爬蟲1.實驗目標1.熟悉網絡爬蟲的相關概念及實現網絡爬蟲的相關流程。2.了解WebCollector框架的根本原理。3.熟練掌握在Eclipse工程中配置使用WebCollector爬蟲。2.前提條件1.正確安裝和配置Java開發(fā)環(huán)境。2.了解網絡爬蟲的相關知識3.進入WebCollector官方下載所需jar包。3.實驗任務及完成標準本次實驗通過WebCollector框架實現一個簡單的聚焦網絡爬蟲。用戶可根據自己的需求定制網絡爬蟲,設定待爬取的網址、爬取網頁的數量、爬取網頁的容等。通過對該實例的詳細介紹來探討網絡爬蟲的原理及在實際生活中的應用。在此實例的根底上,學生需要獨立完成更為復雜的聚焦網絡爬蟲,來爬取更有意義的容。具體要求見“4擴展容〞。3.1建立應用程序工程翻開eclipse,創(chuàng)立本次實驗工程htmlCrawler〔【File】->【New】->【JavaProject】〕如圖1所示。-.word.zl
.-圖1創(chuàng)立工程3.2在Eclipse工程中配置使用WebCollector爬蟲1選中htmlCrawler右鍵,選中【New】->【Folder】,輸入文件名稱“l(fā)ib〞,如以下圖2所示。-.word.zl.-圖2創(chuàng)立文件夾2解壓縮webcollector-2.26-bin.zip,拷貝所有的Jar包,放到lib目錄中,如圖3所示。圖3目錄構造圖3將文件夾lib中的所有jar包添加到buildpath中,如圖4、圖5、圖6所示。-.word.zl.-圖4圖5-.word.zl.-圖6依次選中jar包,導入到工程中。4如果想看WebCollector的源碼,可以為Jar包關聯(lián)源碼〔可選〕,如圖6、圖7所示。-.word.zl.-圖6圖73.3現在可以編寫WebCollector爬蟲的代碼了新建一個類Crawler.java,繼承自BreadthCrawler。重寫visit方法,來實現滿足自己需求的爬蟲即可。如圖8、圖9所示。-.word.zl.-圖8圖93.4抓取師大軟件學院首頁的源代碼-.word.zl.-packagehtmlCrawler;importjava.io.IOException;.hfut.dmic.webcollector.model.CrawlDatums;.hfut.dmic.webcollector.model.Page;.hfut.dmic.webcollector.plugin.berkeley.BreadthCrawler;.hfut.dmic.webcollector.util.FileUtils;publicclassCrawlerextendsBreadthCrawler{publicCrawler(StringcrawlPath,booleanautoParse){super(crawlPath,autoParse);//TODOAuto-generatedconstructorstub}Overridepublicvoidvisit(Pagepage,CrawlDatumsnext){//TODOAuto-generatedmethodstubtry{System.out.println("正在提?。?+page.getUrl());//將爬取的容寫到test.html頁FileUtils.writeFileWithParent("downloads/test.html",page.getContent());}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}-.word.zl.-publicstaticvoidmain(String[]args){//創(chuàng)立爬蟲對象Crawlercrawler=newCrawler("html_crawler",true);crawler.addSeed("/");try{//啟動爬蟲crawler.start(1);}catch(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}}控制臺輸出結果:2021-02-2514:23:06INFO.edu.hfut.dmic.webcollector.crawler.Crawler-startdepth12021-02-2514:23:06INFO.edu.hfut.dmic.webcollector.fetcher.Fetcher-opengenerator:.hfut.dmic.webcollector.plugin.berkeley.BerkeleyGenerator2021-02-2514:23:06INFO.edu.hfut.dmic.webcollector.fetcher.Fetcher-initsegmentWriter:.hfut.dmic.webcollector.plugin.berkeley.BerkeleyDBManager2021-02-2514:23:07INFO.edu.hfut.dmic.webcollector.fetcher.Fetcher--activeThreads=1,spinWaiting=0,fetchQueue.size=02021-02-2514:23:07INFO.edu.hfut.dmic.webcollector.fetcher.Fetcher-fetchURL:/正在提取:/2021-02-2514:23:08INFO.edu.hfut.dmic.webcollector.fetcher.Fetcher--activeThreads=0,spinWaiting=0,fetchQueue.size=0-.word.zl.-2021-02-2514:23:08INFO.edu.hfut.dmic.webcollector.fetcher.Fetcher-clearallactiveThread2021-02-2514:23:08INFO.edu.hfut.dmic.webcollector.fetcher.Fetcher-closegenerator:.hfut.dmic.webcollector.plugin.berkeley.BerkeleyGenerator2021-02-2514:23:08INFO.edu.hfut.dmic.webcollector.fetcher.Fetcher-closesegmentwriter:.hfut.dmic.webcollector.plugin.berkeley.BerkeleyDBManager2021-02-2514:23:08INFO.edu.hfut.dmic.webcollector.plugin.berkeley.BerkeleyDBManager-startmerge2021-02-2514:23:08INFO.edu.hfut.dmic.webcollector.plugin.berkeley.BerkeleyDBManager-mergefetchdatabase2021-02-2514:23:08INFO.edu.hfut.dmic.webcollector.plugin.berkeley.BerkeleyDBManager-mergelinkdatabase2021-02-2514:23:08INFO.edu.hfut.dmic.webcollector.plugin.berkeley.BerkeleyDBManager-endmerge2021-02-2514:23:08INFO.edu.hfut.dmic.webcollector.crawler.Crawler-depth1finish:TOTALurls:1TOTALtime:2seconds爬取結果如圖10所示。圖104擴展容4.1在本實驗的根底上,進展相關的設置:〔1〕爬取的深度;設置開啟的線程數;〔2〕設置爬取url的上限;〔3〕通過正那么表達式設置爬取哪些網頁,不爬取哪些網頁等〔eg./*不要爬取-.word.zl.-jpg|png|gif*/,代碼:crawler.addRegex("-.*\\.(jpg|png|gif).*");〕?!?〕實現代碼由學生自己完成4.2實現自己的網絡爬蟲,抓取“新浪新聞〞〔/〕的局部信息?!?〕需要抓取信息包括:網址,標題,時間,網頁容等?!?〕將抓取的數據寫到文本文件或excel表中?!?〕抓取代碼由學生自己完成。提示:將數據寫到excel表中,需要導入poi-3.14-beta1-20211223.jar包,局部代碼如下://創(chuàng)立一個EXCELWorkbookwb=newHSSFWorkbook();…..//創(chuàng)立一個SHEETsheet1=wb.createSheet("數據解析");String[]title={"url","標題","評論","時間","容","本地相對路徑"};inti=0;//創(chuàng)立一行Rowrow=sheet1.createRow((short)0);//填充標題for(Strings:title){Cellcell=row.createCell(i);cell.setCellValue(s);i++;}//下面是填充數據的局部代碼AtomicIntegerid=newAtomicInteger(0);Rowrow=sheet1.createRow((short)id.incrementAndGet());row.createCell(0).setCellValue(url);row.createCell(1).setCellValue(title);-.word.zl.-row.createCell(2).setCellValue(comment);row.createCell(3).setCellValue(time);row.createCell(4).setCellValue(contents);row.createCell(5).setCellValue(path);4.3改進4.2中自己的網絡爬蟲,將抓取的數據直接寫到數據庫中。實現代碼由學生自己完成。提示:使用JDBC連
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 克羅恩病的護理診斷
- 試驗室安全教育培訓
- 寒號鳥課件2教學課件
- 3-2-2 物質的量在化學方程式計算中的應用 課件 高一上學期化學人教版(2019)必修第一冊
- 腦轉移瘤目前治療策略
- 糖尿病前期指導
- 年終合同管理總結
- 保護我的耳朵教案及反思小班
- 荷花淀說課稿
- 漢教學說課稿
- 淮劇專題講座
- 電影院信息管理系統(tǒng)設計Word
- 兒科學教學課件:兒童股骨干骨折
- 手機攝影入門演示文稿
- 《赤壁賦》課件(共48張PPT)
- RB/T 208-2016化學實驗室內部質量控制比對試驗
- GB/T 3477-2008船用風雨密單扇鋼質門
- GB/T 32893-201610 kV及以上電力用戶變電站運行管理規(guī)范
- 一汽大眾MMOG LE與物流管理要求達成
- GB/T 25217.1-2010沖擊地壓測定、監(jiān)測與防治方法第1部分:頂板巖層沖擊傾向性分類及指數的測定方法
- 廣西三新系統(tǒng)八大員員繼續(xù)教育考試100分答案
評論
0/150
提交評論