1、引言:html
最近在忙某個商業銀行的項目,須要引入外部互聯網數據做爲參考,做爲技術選型階段的工做,以前已經肯定了中文分詞工具,下一個話題就是網絡爬蟲的選擇,目標很明確,須要下載一些財經網站的新聞信息,而後進行文本計算。記得上一次碰爬蟲仍是5年前,時過境遷,不知道爬蟲的世界裏是否有了新的崛起。比較過一些以後,初步認定Heritrix基本可以知足須要,固然確定是須要定製的了。java
2、版本選擇spring
Heritrix當前版本3.1.0,安裝後發現,啓動任務時,Windows平臺有BDBOpen的錯誤(具體緣由不詳),Linux環境沒有測試。度娘了一把,沒啥實質性收穫,若是從源碼去看,又太費時間。就換到了3.0.5,這個版本也有問題,就是建立Job時,老是提示文件夾有問題,能夠選擇手動建立下載任務。操做界面以下圖所示:api
3、配置任務-手動網絡
1.jobs目錄下新建文件夾sohu;ide
2.拷貝模板文件profile-crawler-beans.cxml到sohu目錄函數
3.重命名profile-crawler-beans.cxml文件爲crawler-beans.cxml工具
4.手動修改文件crawler-beans.cxml,設置目標網站和存儲方式:測試
1 # This Properties map is specified in the Java 'property list' text format 2 # http://java.sun.com/javase/6/docs/api/java/util/Properties.html#load%28java.io.Reader%29 3 4 metadata.operatorContactUrl=http://localhost 5 metadata.jobName=sohu 6 metadata.description=sohujingxuan 7 8 ##..more?..## 9 </value> 10 </property> 11 </bean> 12 13 <!-- overrides from declared <prop> elements, more easily allowing 14 multiline values or even declared beans --> 15 <bean id="longerOverrides" class="org.springframework.beans.factory.config.PropertyOverrideConfigurer"> 16 <property name="properties"> 17 <props> 18 <prop key="seeds.textSource.value"> 19 20 # URLS HERE 21 http://t.sohu.com/jingxuan 22 23 </prop> 24 </props> 25 </property> 26 </bean> 27 28 <!-- CRAWL METADATA: including identification of crawler/operator --> 29 <bean id="metadata" class="org.archive.modules.CrawlMetadata" autowire="byName"> 30 <property name="operatorContactUrl" value="http://localhost"/> 31 <property name="jobName" value="sohu"/> 32 <property name="description" value="sohujingxuan"/> 33 <!-- <property name="operator" value=""/> --> 34 <!-- <property name="operatorFrom" value=""/> --> 35 <!-- <property name="organization" value=""/> --> 36 <!-- <property name="audience" value=""/> --> 37 <!-- <property name="userAgentTemplate" 38 value="Mozilla/5.0 (compatible; heritrix/@VERSION@ +@OPERATOR_CONTACT_URL@)"/> --> 39 40 </bean>
4、停用Robots檢查fetch
改造函數,禁用Robots協議檢查,目的就不說了,改造方法以下:
private boolean considerRobotsPreconditions(CrawlURI curi) {
// treat /robots.txt fetches specially
//++zhangzl:取消robots.txt的強制限制
return false;
//--
}
5、後續工做
1.定向下載改造:只下載目標內容,過濾無關信息。
2.自動解析改造:下載內容自動解析到指定目錄,指定格式。