六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 2020|回复: 0

Heritrix3.0教程(三) 开始抓取

[复制链接]
 楼主| 发表于 2014-9-3 16:38:32 | 显示全部楼层 |阅读模式
Heritrix3.0教程(三) 开始抓取

本博客属原创文章,转载请注明出处:http://www.yun5u.com/articles/heritrix3-2.html

       上一篇博客介绍了,Heritrix3.0的下载,安装以及启动,可以通过UI去配置,和控制抓取任务.这一篇博将讲述,如何在Heritrix上创建抓取任务(CrawlJob)并运行.

       首先创建抓取,本可以通过WEB界面来创建,但有时会出现一些莫名奇妙的问题,我这里通过手工创建的方式.上一篇我的Heritrix所在目录为D:\heritrix\heritrix-3.0.0,所有的抓取任务默在jobs目录下.这里我们手动在jobs目录下创建一个目录,我这里取名为test_job.然后进入D:\heritrix\heritrix-3.0.0\jobs目录下有个profile-defaults目录,再进入,里面有个profile-crawler-beans.cxml文件.将该文件拷贝到刚才创建的test_job下.并将其改名为crawler-beans.cxml.不改名的话,Heritrix会默认你的job为模板job.不会进行相关抓取.

这里简单介绍下crawler-beans.cxml.该文件相比Heritrix早期版本改进很多,首先使用Spring管理该文件.同时用该文件代替了Heritrix早期版本多个配置文件,如order.xml和seeds.txt.也算Heritrix3.0的一个新特性,我接下来会介绍Heritrix的所有新特性.我们只要在该文件中修改相关bean就可以很好的控制一个爬虫的抓取.特别是垂直爬虫,可以说可以很方便进行配置.至于详细介绍crawler-bean.cxml中各个bean以及它的属性,请看我下一篇博客.也只有了解了各个bean的左右,才可以很好的控制爬虫.

运行一个简单的抓取,先要修改以下地方.

1.创建Job


Xml代码  [url=][/url]

  • <bean id="simpleOverrides">
  •        <property name="properties">
  •        <value>
  • metadata.operatorContactUrl=ENTER_AN_URL_WITH_YOUR_CONTACT_INFO_HERE_FOR_WEBMASTERS_AFFECTED_BY_YOUR_CRAWL
  • metadata.jobName=basic
  • metadata.description=Basic crawl starting with useful defaults            </value>
  •      </property>
  • </bean>

1)metadata.operatorContactUrl   你控制Heritrix的URL,一般是http://127.0.0.1

2)metadata.jobName 表示你的抓取名字,我们刚才创建的是test_job,那就修改为test_job

3)metadata.description 表示对这个抓取任务的简单描述,我们这里就描述为 firt crawl job

2.设置种子


Xml代码  [url=][/url]

  • <bean id="longerOverrides">
  •      <property name="properties">
  •          <props>
  •                 <prop key="seeds.textSource.value">
  •                        # URLS HERE
  •                        http://example.example/example
  •                </prop>
  •        </props>
  •    </property>
  • </bean>

以上的http://example.example/example就表示是种子了,这里设置你想抓取的种子.比如我这里设置http://guoyunsky.blogcn.com

3)完善job信息和本机信息

Xml代码  [url=][/url]

  • <bean id="metadata" autowire="byName">
  •      <property name="operatorContactUrl" value="[see override above]"/>
  •       <property name="jobName" value="[see override above]"/>
  •       <property name="description" value="[see override above]"/>
  •       <!-- <property name="operator" value=""/> -->
  •       <!-- <property name="operatorFrom" value=""/> -->
  •       <!-- <property name="organization" value=""/> -->
  •       <!-- <property name="audience" value=""/> -->
  •       <property name="userAgentTemplate"
  • value="Mozilla/5.0 (compatible; heritrix/@VERSION@ +@OPERATOR_CONTACT_URL@)"/>
  • </bean>

这个Bean按道理可以通过刚才设置的simpleOverrides来获取,但貌似不完善,我们还是自己再设置下吧.

1) operatorContactUrl 控制爬虫的URL,一般是http://127.0.0.1

2)jobName  抓取任务名字,这里是test_job

3) description 描述,这里是first crawl job

4)以上几个属性除了userAgentTemplate有必要设置的话,都可以不设置.userAgentTemplate这里设置是为了伪造浏览器去抓取数据,

如果没有设置该值,则很容易被防爬虫的网站K掉,这里设置@VERSION为3.0,+@OPERATOR_CONTACT_URL为操作爬虫联系方式,

我这里填我的emal:guoyunsky@hotmail.com

以上三个bean设置完毕的话,就可以运行抓取了.不过是全网抓取.

这里回到操作界面,默认的是https://localhost:8443/,正常的话会在Job Directories下显示刚才创建的test_job,如果没有的话点下rescan按钮,重新扫描一下.显示除了test_job后我们点击它,这时就会进入该job的控制台了.界面如下:

操作界面,各个组件一下博客我会讲解,这里点击launch按钮,意思是载入这个抓取任务.载入的话会获取这个job的所有配置和以前抓取的各种文件,如日志.默认的话,载入这个抓取任务后,会进入暂停状态.根据界面上Job is Active: PAUSED来判断,如果是PAUSED的话这里再点击unpause按钮,如此爬虫就开始进入抓取了,这时Job is Active:会变成RUNNING,表示抓取正在进行了.

正常抓取的话,会在test_job目录下出现一个warcs目录,这个目录里面放的就是抓取的数据.看到这个目录的就表示你抓取成功了.如下图所示:

最近读者:

Heritrix3.0教程(三) 开始抓取
该会员没有填写今日想说内容.
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表