可以说 crawler-beans.cxml 可以主导整个Heritrix的抓取,采用spring来管理.里面的配置都是一个个bean,通过修改配置文件 crawler-beans.cxml 即可完成几乎所有的需求。
1. 修改任务元数据
<bean id="simpleOverrides" class="org.springframework.beans.factory.config.PropertyOverrideConfigurer">
<property name="properties">
<value>
# This Properties map is specified in the Java 'property list' text format
# http://java.sun.com/javase/6/docs/api/java/util/Properties.html#load%28java.io.Reader%29
metadata.operatorContactUrl=https://stu-ali.xvping.cn:8443
metadata.jobName=XP Crawl
metadata.description=XP crawl for Searching engine
##..more?..##
</value>
</property>
</bean>
通过文章后面附录中对各个Bean的介绍,simpleOverrides的作用是设置基本的一些任务元数据,我修改的这3个分别是操作人员的联系URL、任务的名字和任务的描述。这些信息在请求页面的时候会带上,告诉对方自己的身份描述信息。身份信息在robots.txt协议中有一定作用,网站可以通过设置该协议来拒绝特定的爬虫。协议具体细节请自行查询。包括是否遵守爬虫的robots.txt协议也可以在metadata里配置。
2. 设置种子站点 种子站点:爬虫从这些页面开始解析出来URL并加入待爬列表中。
<bean id="longerOverrides" class="org.springframework.beans.factory.config.PropertyOverrideConfigurer">
<property name="properties">
<props>
<prop key="seeds.textSource.value">
# URLS HERE
http://you.ctrip.com/sitemap/spotdis/c0
http://you.ctrip.com/sitemap/spots.html
</prop>
</props>
</property>
</bean>
3. 定制爬取范围
Heritrix提供了一种URL匹配的规则模式– SURT。
<bean id="acceptSurts" class="org.archive.modules.deciderules.surt.SurtPrefixedDecideRule">
<!-- <property name="decision" value="ACCEPT"/> -->
<!-- <property name="seedsAsSurtPrefixes" value="true" /> -->
<!-- <property