一:准备工作:
1:下载nutch,地址是:http://www.apache.org/dist/lucene/nutch/
2:下载JDK6(一定要是jdk6的版本,否则会报错),地址是:
http://java.sun.com/javase/downloads/index.jsp
3:下载Cygwin(是一个在windows平台上运行的unix模拟环境的软件),地址是:http://www.cygwin.com/ 安装说明参考这里:
4:下载tomcat6,地址是:http://tomcat.apache.org/
二:配置:(前面的软件都安装完毕)
1:解压缩的nutch后,到conf下面修改crawl-urlfilter.txt
# accept hosts in MY.DOMAIN.NAME
+^http://([a-z0-9]*\.)*apache.org/
+^http://([a-z0-9]*\.)*longtask.com/blog/
如果有需要可以继续添加相关的站点.
2:修改conf下面的nutch-site.xml文件,在<configuration>之间添加以下内容
<property>
<name>http.agent.name</name>
<value>longtask</value>
<description>HTTP ‘User-Agent’ request header. </description>
</property>
<property>
<name>http.agent.description</name>
<value>longtask</value>
<description>Further description of our bot- this text is used in the User-Agent header.
</description>
</property>
<property>
<name>http.agent.url</name>
<value>http://www.longtask.com/blog/</value>
<description>A URL to advertise in the User-Agent header.
</description>
</property>
<property>
<name>http.agent.email</name>
<value>longtask@gmail.com</value>
<description>An email address to advertise in the HTTP ‘From’ reques header and User-Agent header.
</description>
</property>
3:回到到nutch的根目录,进入bin目录,建一个urls的文件夹,在文件夹中建一个nutch.txt的问题件,在文件中加入上面要鉴权的Url地址(抓取的网址(nutch.txt)经过(crawl-urlfilters.xml)过滤后,如果没有内容会在log中报错:Stopping at depth=0 – no more URLs to fetch.)。这个地方用nutch1.0怎么都跑不过,只能换回0.9的版本了。
三:解决搜索动态内容的问题:
需要注意在conf下面的2个文件:regex-urlfilter.txt,crawl-urlfilter.txt
# skip URLs containing certain characters as probable queries, etc.
-[?*!@=] (-改+)
这段意思是跳过在连接中存在? * ! @ = 的页面,因为默认是跳过所以,在动态页中存在?一般按照默认的是不能抓取到的。可以在上面2个文件中都修改成:
# skip URLs containing certain characters as probable queries, etc.
# -[?*!@=]
另外增加允许的一行
# accept URLs containing certain characters as probable queries, etc.
+[?=&]
意思是抓取时候允许抓取连接中带 ? = & 这三个符号的连接
注意:两个文件都需要修改,因为NUTCH加载规则的顺序是crawl-urlfilter.txt-> regex-urlfilter.txt
四:运行爬虫,抓取内容:
打开Cygwin,
在命令行窗口中输入: cd nutch的目录/bin
执行命令:
sh nutch crawl urls -dir e:/index -depth 3 -threads 4 -topN 50 >& ./log.txt
说明:
-dir dirnames 设置保存所抓取网页的目录.
-depth depth 表明抓取网页的层次深度
-delay delay 表明访问不同主机的延时,单位为“秒”
-threads threads 表明需要启动的线程数
-topN number 在每次迭代中限制爬行的头几个链接数,默认是Integer.MAX_VALUE
运行结束后,查看log.txt日志,会有爬虫检索网页的详细信息。
问题的解决:运行的过程中报错:
Stopping at depth=0 – no more URLs to fetch.
No URLs to fetch – check your seed list and URL filters.
在urls的nutch.txt中再添加一个URL即可,这个是nutch0.9的bug(如果是1.0这个地方不知道怎么搞定,所以改回0.9来部署了。)
五:部署到tomcat下面:
1:配置nutch-0.9.war包中的文件
a:修改nutch-0.9.war\WEB-INF\web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
为
<?xml version="1.0" encoding="UTF-8"?>
b:修改nutch-0.9.war\WEB-INF\class\nutch-site.xml
注意:不要让你的config中有2个<configuration>,否则的话检索不出来东西。
<configuration>
<property>
<name>searcher.dir</name>
<value>e:/index</value>
</property>
</configuration>
2:把应用部署到tomcat的webapps下面,启动tomcat,访问应用:http://localhost:8080/nutch-0.9就可以得到以下界面:
输入访问的条件后,结果如下:
分享到:
相关推荐
nutch 0.9 版代码包,包含src源代码,war可直接部署到tomcat中的war包,以及爬取网页的可执行文件,nutch crawl文件。
nutch 0.9分页代码(粘贴可用)
Eclipse 编译 Nutch-0.9
eclipse配置nutch,eclipse配置nutch
亲测好用
参考文章 http://blog.csdn.net/handyhuang/article/details/7421553
Nutch在Tomcat下的部署.doc
基于Apache Nutch 1.8和Htmlunit组件,实现对于AJAX加载类型页面的完整页面内容抓取解析。 According to the implementation of Apache Nutch 1.8, we can't get dynamic ...
在该示例中,首先带领读者开发一个作为 Nutch 爬虫抓取的目标网站,目标网站将被部署在域名为 myNutch.com 的服务器上。然后示例说明 Nutch 爬虫如何抓取目标网站内容,产生片断和索引,并将结果存放在集群的2个节点...
rtf-parse.jar、jid3lib-0.5.4.jar,nutch编译需要的jar文件
Nutch 解析器parse部分代码笔记
论文然后应用Nutch0.9爬虫的不同工作方式,将从指定种子站点爬行到的网页集和从各独立搜索引擎爬行到的网页集融合在一起。再开发主题解析和主题索引插件,对爬行到的网页进行主题词提取,确定页面主题,计算主题度,...
部署后,进入站台目录下的WEB-INF\classes,找到“nutch-site.xml”文件,打开,向其中根节点添加: <property> <name>searcher.dir</name> <value>E:\nutch-0.9\crawl</value> 2. 启动Tomcat,输入...
我们需要去抓取网页数据的时候我们就用nutch来爬取,我们对它进行二次开发使其更加符合我们的需求
nutch1.3在myclipse部署工程源码nutch1.3在myclipse部署工程源码nutch1.3在myclipse部署工程源码
在e盘下面出现nutch-0.9文件夹说明解压成功了.然后环境变量设置为NUTCH_JAVA_HOME=C:\Program Files\Java\jdk1.5.0(也就是说跟JAVA_HOME是相同的).测试nutch是否安装成功,只需要执行以下命令: $cd D:/Downloads/...
基于Nutch技术的主题搜索引擎实现_李东海.caj
nutch解决搜索结果高亮和网页快照链接无效及网页变形
Nutch 1.3 学习笔记,讲的比较清楚的文档
nutch安装指南,nutch教程,nutch网络爬取