导入nutch项目时其conf文件下的所有配置文件需要加入到classPath中
右键conf――>Build PathàUse as Source Folder
在运行时如发生异常:x point org.apache.nutch.net.URLNormalizer not found.
注:这是配置造成的,是插件目录的配置没有正确,修改conf/nutch-default.xml文件
<property>
<name>plugin.folders</name>
<value>./src/plugin</value><!—修改部分-->
...
在运行时如发生异常:Fetcher: No agents listed in 'http.agent.name' property.
检查conf配置目录中的nutch-default.xml和nutch-site.xml文件中是否存在键:http.agent.name,
或存在键:http.agent.name,但其值为空,一定要定义此键值,值可以任意,自已想名字吧。如:
<property>
<name>http.agent.name</name>
<value>nutch16</value>
</property>
//添加想抓取的URL
1、建立待扫描的文件夹,然后在其中新建一个文件(文件名不限),在该文件中写入想抓取的网站URL,每行一个,如:http://www.163.com/
2、conf/crawl-urlfilter.txt
#accept hosts in MY.DOMAIN.NAME
+^http://([a-z0-9]*\.)*163.com/ ---写入想抓取的网站正则表达式
然后即可在eclipse中进行调试或使用nutch进行爬行
进入nutch目录
$ sh ./bin/nutch crawl urls -dir mydir -depth 2 -threads 4 -topN 50
crawl:通知nutch.jar,执行crawl的main方法。
urls:存放需要爬行的url.txt文件的目录
-dir mydir 爬行后文件保存的位置
-depth 2:爬行次数,或者成为深度,不过还是觉得次数更贴切,建议测试时改为1。
-threads 指定并发的进程 这是设定为 4
-topN 50:一个网站保存的最大页面数。
注意爬网的时候mydir目录不能存在,要不然会出错