最近要开始研究搜索引擎的爬虫部分了,公司里面开发用的IDE是NetBeans,本来打算在NetBeans中搭建一个爬虫的源代码工程准备研究一下,可惜试了几次失败了,这两个IDE本身生成的配置文件就不一样,出现的错误网上都见过,但是都是针对Eclipse解决的,同样的办法拿到NetBeans中无效。看见网上的资料全都是描述如何在Eclipse中搭建的,所以就准备在Eclipse里面先搭建一个试试,网上的资料很全,但是各种各样的方式层出不穷,就参照资料加上实验,自己也总结了一个在Eclipse中成功配置爬虫源代码的配置步骤。完全按照以下步骤执行即可。这样既方便自己今后看,也希望能给大家带来方便。接着我会想办法在Netbeans中把爬虫的源代码搭建起来的,如果成功的话,我会把详细的步骤拿出来与大家分享,如果谁要是已经在NetBeans中搭建成功了,希望能联系我,分享一下你的经验。好了,废话不多说了,下面详细介绍一下我在Eclipse中的配置过程吧。
(一)首先下载这2个heritrix-1.14.3.tar.gz和heritrix-1.14.3-src.tar.gz爬虫的源代码包,我下载的是1.14.3版本,最新版本。网上还有后缀名为zip的包,那些是Windows版本的包。准备工作做完之后,开始配置爬虫的工程了(当然,前提条件是Java运行所需要的环境必须要有,比如JDK….)。
(二)解压下载的两个压缩包,解压时会有个小问题,这两个压缩包里面的文件夹全叫heritrix-1.14.3名称,所以解压后会出现覆盖的现象,所以先解压heritrix-1.14.3-src.tar.gz压缩包,将解压之后的文件夹名称修改成heritrix-1.14.3-src名称,然后再解压heritrix-1.14.3.tar.gz压缩包就不会有问题了。
(三)打开IDE创建一个Java工程,注意不要创建Web工程,工程名称随意符合编码规范就可以啦。
(四)在资源管理器中找到刚创建的Java工程的文件夹,删除里面的src和bin文件夹(如果你创建的工程里面本来就没有这两个文件夹就不用管了。)
(五)将heritrix-1.14.3文件夹中的webapps文件夹拷贝到工程文件夹根目录下。
(六)将heritrix-1.14.3-src文件夹中的lib文件夹拷贝到工程文件夹根目录下。
(七)将heritrix-1.14.3-src文件夹中的src/java里面的com、org、st三个文件夹拷贝到工程文件夹根目录下。
(八)将heritrix-1.14.3-src文件夹中的src/conf里面的所有东西拷贝到工程文件夹根目录下(其中有个dat文件没用,反正也不占太多地方,留着也没事)
(九)将heritrix-1.14.3-src文件夹中的resources里面的xsl文件拷贝到工程文件夹根目录下。
(十)修改工程下面的.classpath配置文件。
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry path="" kind="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry path="lib/ant-1.6.2.jar" kind="lib"/>
<classpathentry path="lib/bsh-2.0b4.jar" kind="lib"/>
<classpathentry path="lib/commons-cli-1.0.jar" kind="lib"/>
<classpathentry path="lib/commons-codec-1.3.jar" kind="lib"/>
<classpathentry path="lib/commons-collections-3.1.jar" kind="lib"/>
<classpathentry path="lib/commons-httpclient-3.1.jar" kind="lib"/>
<classpathentry path="lib/commons-io-1.3.1.jar" kind="lib"/>
<classpathentry path="lib/commons-lang-2.3.jar" kind="lib"/>
<classpathentry path="lib/commons-logging-1.0.4.jar" kind="lib"/>
<classpathentry path="lib/commons-net-1.4.1.jar" kind="lib"/>
<classpathentry path="lib/commons-pool-1.3.jar" kind="lib"/>
<classpathentry path="lib/dnsjava-2.0.3.jar" kind="lib"/>
<classpathentry path="lib/fastutil-5.0.3-heritrix-subset-1.0.jar" kind="lib"/>
<classpathentry path="lib/itext-1.2.0.jar" kind="lib"/>
<classpathentry path="lib/jasper-compiler-tomcat-4.1.30.jar" kind="lib"/>
<classpathentry path="lib/jasper-runtime-tomcat-4.1.30.jar" kind="lib"/>
<classpathentry path="lib/javaswf-CVS-SNAPSHOT-1.jar" kind="lib"/>
<classpathentry path="lib/je-3.3.75.jar" kind="lib"/>
<classpathentry path="lib/jericho-html-2.6.jar" kind="lib"/>
<classpathentry path="lib/jets3t-0.5.0.jar" kind="lib"/>
<classpathentry path="lib/jetty-4.2.23.jar" kind="lib"/>
<classpathentry path="lib/junit-3.8.2.jar" kind="lib"/>
<classpathentry path="lib/libidn-0.5.9.jar" kind="lib"/>
<classpathentry path="lib/mg4j-1.0.1.jar" kind="lib"/>
<classpathentry path="lib/poi-2.0-RC1-20031102.jar" kind="lib"/>
<classpathentry path="lib/poi-scratchpad-2.0-RC1-20031102.jar" kind="lib"/>
<classpathentry path="lib/servlet-tomcat-4.1.30.jar" kind="lib"/>
<classpathentry path="" kind="output"/>
</classpath>
主要修改目的就是让IDE中的工程根文件夹下的所有资源都呈现包结构组织,默认情况下<classpathentry path="src" kind="src"/>这句话是指定src资源文件夹下的资源文件呈现包结构组织,将path属性设置空,则表示工程的根文件夹下的所有资源都呈现包结构组织。如果不修改,运行Heritrix主类会出错。上面贴出的代码已经修改过,可以将上段代码直接全部覆盖你的工程下的.classpath文件内容。
(十一) 修改工程下面的heritrix.properties属性文件,只需修改几个属性就可以。
heritrix.version = 1.14.3 指定爬虫的版本号,你用的版本是多少,就改成多少
heritrix.jobsdir = jobs 设置爬去的文件存放的位置,默认是工程根文件夹下的jobs文件中
heritrix.cmdline.admin = admin:admin 设置爬虫的帐号和密码,随意设置,但是是否有长度限制我没有试过。帐号和密码之间用分号隔开。
heritrix.cmdline.port = 10086 设置爬虫运行的端口号,该端口号一定要保证不被占用,默认是8080端口,Tomcat的默认端口也是8080,为了避免端口冲突,所以我改成了10086端口。修改完这几个属性之后,保存即可。
(十二)最后切换回你的IDE界面,刷新一下你的工程,就可以看见所有的源代码包了。在你的工程中找到org/archive/crawler/Heritrix.java类,然后运行该类。控制台会输入一些信息,比如你的爬虫的版本号等等,然后打开浏览器,直接访问你的爬虫就可以了。例如我爬虫的端口号是10086,我就直接访问http://127.0.0.1:10086或者http://localhost:10086直接回车可以看见你的爬虫界面了,然后输入你设置的帐号和密码,对爬虫进行一下设置就可以开始爬取数据了。关于爬虫的爬取设置问题,我就不详细说明了,网上有很多例子,随便找一篇爬虫参数设置的文章,按照那上面说明的设置一下就可以,这个很简单,不会出现什么错误。
如果有什么问题大家可以一起讨论一下,互相交流。