一、引言:
最近在忙某個商業(yè)銀行的項目,需要引入外部互聯(lián)網數(shù)據(jù)作為參考,作為技術選型階段的工作,之前已經確定了中文分詞工具,下一個話題就是網絡爬蟲的選擇,目標很明確,需要下載一些財經網站的新聞信息,然后進行文本計算。記得上一次碰爬蟲還是5年前,時過境遷,不知道爬蟲的世界里是否有了新的崛起。比較過一些之后,初步認定Heritrix基本能夠滿足需要,當然肯定是需要定制的了。
二、版本選擇
Heritrix當前版本3.1.0,安裝后發(fā)現(xiàn),啟動任務時,Windows平臺有BDBOpen的錯誤(具體原因不詳),Linux環(huán)境沒有測試。度娘了一把,沒啥實質性收獲,如果從源碼去看,又太費時間。就換到了3.0.5,這個版本也有問題,就是創(chuàng)建Job時,總是提示文件夾有問題,可以選擇手動創(chuàng)建下載任務。操作界面如下圖所示:
三、配置任務-手動
1.jobs目錄下新建文件夾sohu;
2.拷貝模板文件profile-crawler-beans.cxml到sohu目錄
3.重命名profile-crawler-beans.cxml文件為crawler-beans.cxml
4.手動修改文件crawler-beans.cxml,設置目標網站和存儲方式:復制代碼代碼如下:# This Properties map is specified in the Java "property list" text format# <a >http://java.sun.com/javase/6/docs/api/java/util/Properties.html#load%28java.io.Reader%29</a></p><p>metadata.operatorContactUrl=http://localhostmetadata.jobName=sohumetadata.description=sohujingxuan</p><p>##..more?..## </value> </property> </bean></p><p> <!-- overrides from declared <prop> elements, more easily allowing multiline values or even declared beans --> <bean id="longerOverrides" class="org.springframework.beans.factory.config.PropertyOverrideConfigurer"> <property name="properties"> <props> <prop key="seeds.textSource.value"></p><p># URLS HERE<a >http://t.sohu.com/jingxuan</a></p><p> </prop> </props> </property> </bean></p><p> <!-- CRAWL METADATA: including identification of crawler/operator --> <bean id="metadata" class="org.archive.modules.CrawlMetadata" autowire="byName"> <property name="operatorContactUrl" value="<a href="http://localhost"/">http://localhost"/</a>> <property name="jobName" value="sohu"/> <property name="description" value="sohujingxuan"/> <!-- <property name="operator" value=""/> --> <!-- <property name="operatorFrom" value=""/> --> <!-- <property name="organization" value=""/> --> <!-- <property name="audience" value=""/> --> <!-- <property name="userAgentTemplate" value="Mozilla/5.0 (compatible; <a href="mailto:heritrix/@VERSION">heritrix/@VERSION</a>@ <a href="mailto:+@OPERATOR_CONTACT_URL@)"/">+@OPERATOR_CONTACT_URL@)"/</a>> --> </bean>四、停用Robots檢查
改造函數(shù),禁用Robots協(xié)議檢查,目的就不說了,改造方法如下:
復制代碼代碼如下:private boolean considerRobotsPreconditions(CrawlURI curi) { // treat /robots.txt fetches specially //++zhangzl:取消robots.txt的強制限制 return false; //--</p><p> }
五、后續(xù)工作
1.定向下載改造:只下載目標內容,過濾無關信息。
2.自動解析改造:下載內容自動解析到指定目錄,指定格式。
最新資訊