幾天前配置Eclipse +Heritrix,配了一天頭暈腦脹
,也沒能讓它跑起來。確切的說,WebUI登陸就不成功。
中間幾天想起來就倒胃
,于是扔那不睬它
忙了些其他的事情。春節晚會的全程都在翻論壇查銀行卡和宿舍等資料,差點忘了零點之前回復大量的祝福短信,我真是勤奮
……今天大年初一沒事做,上午爬起來看看論壇和JUNJIN的反轉劇
,調節了調節心情
,下午接著折騰Heritrix……用Eclipse運行的方法實在很繁瑣,網上找的方法在我的機器上總不成功,深刻認識到……基于Linux的開源軟件拿到Windows下都不是省油的燈
……決定改行先按控制臺配置,先讓它能爬再說別的
……下午配了個能運行的,寫個筆記晾在這。
下載Heritrix
?????下載頁面:
http://crawler.archive.org/downloads.html
,在此頁面中選擇 Sourceforge Downloads進入下載列表,選擇一個版本的ZIP壓縮包進行下載。我下載的版本是Heritrix-1.12.1,因為網上的說明好像都是針對這個版本的……
安裝、配置Heritrix
?????1、將得到的Heritrix壓縮包直接解壓縮到某一目錄,我選擇的是D:\Heritrix。
?????2、將 \Heritrix 目錄中的heritrix-1.12.1.jar文件解包,把 profiles\default 下的兩個文件order.xml和seeds.txt復制到 \heritrix\conf 目錄。
?????3、以文本編輯方式打開 \heritrix\conf 下的heritrix.properties文件,在“heritrix.cmdline.admin = ” 項的后面加入你所要設定的管理員賬戶和密碼,用“:”分割,如:
?????heritrix.cmdline.admin = admin:admin
?????4、復制 \heritrix\conf 下的jmxremote.password.template文件到主目錄\Heritrix 下,并更名為jmxremote.password。編輯此文件,更改最后兩行"monitorRole @PASSWORD@"、"controlRole @PASSWORD@"中的"@PASSWORD@"為管理員密碼。如:
????????????????? monitorRole?admin
????????????????? controlRole admin
系統自帶腳本運行
??將cmd定位到 D:"heritrix"bin,執行 "heritrix --admin=admin:admin" 命令,即可啟動 heritrix,
有一點需要注意, heritrix 默認使用 8080 端口,要保證系統端口沒有沖突。之后便可以訪問 http://127.0.0.1:8080 或 http://localhost:8080/ 使用 heritrix 提供的 WUI ,即 Web 管理端。并且使用 "admin/admin" 登錄。
?[2]選Jobs選項,設置抓取頁為 http://news.sohu.com/
1. frontier
org.archive.crawler.frontier.BdbFrontier ? 默認的不是這個,注意替換掉默認的,不然的話運行時會出現后面那個異常
2. scope
org.archive.crawler.scope.BroadScope
3. Prefetcher
org.archive.crawler.prefetch.Preselector
org.archive.crawler.prefetch.PreconditionEnforcer
4. Fetcher
org.archive.crawler.fetcher.FetchDNS
org.archive.crawler.fetcher.FetchHTTP
5. Extractor
org.archive.crawler.extractor.ExtractorHTTP
org.archive.crawler.extractor.ExtractorHTML
(這里可以按自己的需要多添幾個,比如ExtractorSWF、ExtractorJS什么的,但是前兩個是必不可少的)
6. Writer
org.archive.crawler. writer.MirrorWriterProcessor
7. PostProcessor
org.archive.crawler.postprocessor.CrawlStateUpdaterorg.archive.crawler.postprocessor.LinksScoper
org.archive.crawler.postprocessor.FrontierScheduler
(FrontierScheduler可以自行擴展)
??????
選擇Jobs菜單的“Settings”項進入運行參數設置頁面。進入運行參數設置頁面后,有很多可以設定的參數,點擊設置框左邊的“?”號,可看到彈出的幫助信息。最簡單的可只更改“HTTP-Header”項中的內容,更改其屬性值“user-agent”和“from”。
設置完成后,點擊Submit job菜單項,即完成全部任務的建立工作。
?????????? 通過提交設定好的任務,頁面返回到Jobs的主菜單,在頁面下方有任務的一些信息和設置菜單。此時點擊左上角的“Console”菜單,返回主頁面,點擊“Start”可以開始任務。點擊左下角紅色框標出的“Refresh”選項,可以刷新任務狀態。要暫停當前任務。可點擊任務狀態旁的選項“Pause”。抓取頁面會存放在工作目錄下的mirror文件夾內。
?
每一個站點的URL地址即為保存的目錄名稱,其文件和對應的服務目錄結構被保存到此目錄下面。此處看出,Heritrix更像一個強大的網站下載工具。至此,Heritrix的簡單抓取任務設置描述完畢。
?
?
補充:為了在抓取時不保存其他無關頁面,可擴展FrontierScheduler來抓取特定的內容。
?
如果出現這樣的異常:
第一條異常
Time:? ??. 26, 2009 06:52:05 GMT?
Level:? SEVERE?
Message:? On crawl: news Unable to setup crawl modules
Exception:? java.lang.ClassCastException: org.archive.crawler.settings.ModuleType cannot be cast to org.archive.crawler.framework.Frontier
Stacktrace: java.lang.ClassCastException: org.archive.crawler.settings.ModuleType cannot be cast to org.archive.crawler.framework.Frontier
at org.archive.crawler.framework.CrawlController.setupCrawlModules(CrawlController.java:654)
at org.archive.crawler.framework.CrawlController.initialize(CrawlController.java:377)
at org.archive.crawler.admin.CrawlJob.setupForCrawlStart(CrawlJob.java:846)
at org.archive.crawler.admin.CrawlJobHandler.startNextJobInternal(CrawlJobHandler.java:1142)
at org.archive.crawler.admin.CrawlJobHandler$3.run(CrawlJobHandler.java:1125)
at java.lang.Thread.run(Unknown Source)
第二條異常
Time:? ??. 26, 2009 06:52:05 GMT?
Level:? WARNING?
Message:? Value of illegal type: 'org.archive.crawler.settings.ModuleType', 'org.archive.crawler.framework.Frontier' was expected.: Value of illegal type: 'org.archive.crawler.settings.ModuleType', 'org.archive.crawler.framework.Frontier' was expected.
Exception:? No associated exception.
有可能是Frontier設置錯誤導致的。檢查一下上面配置處理鏈的部分,是否選中的是:org.archive.crawler.frontier.BdbFrontier?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
