参考资料: http://www.blogjava.net/dev2dev/archive/2006/02/01/29415.aspx Nutch 在 Windows 中安装之细解
由于运行 Nutch 自带的脚本命令需要 Linux 的环境,所以必须首先安装 Cygwin 来模拟这种环境。
1 )安装 cgwin
2) 下载 nutch-0.9.tar.gz, 用 winrar 解压后,例如放在 g:/nutch-0.9
3) 安装 nutch ,打开 cgwin ,运行命令:
cd /cygdrive/g/nutch-0.9 ( 也就是进入 nutch 解压的目录 )
bin/nutch ( 执行 nutch 脚本安装 )
4) OK !
资料: http://blog.csdn.net/zjzcl/archive/2006/02/06/593138.aspx
Nutch 使用之锋芒初试 (包括下载及检索两部分)
注意:请使用 JDK1.5 ,用 JDK1 。 4 会报错误: unsupported major.minor version 49.0 n
设置环境变量: NUTCH_JAVA_HOME = c:/jdk1.5
1) 在 nutch 的安装目录新建一个文件 url.txt ,指明要抓取网站的顶级网址,写入:
http://www.aerostrong.com.cn
2) 编辑 conf/crawl-urlfilter.txt ,修改 MY.DOMAIN.NAME 部分
# accept hosts in MY.DOMAIN.NAME
#+^http://([a-z0-9]*.)*MY.DOMAIN.NAME/
+^http://www.aerostrong.com.cn
3) 运行脚本命令抓取,脚本命令全是 linux 下的 shell 命令,在 window 下运行它需要 cgwin ,打开 cgwin ,运行命令 :
cd /cygdrive/g/nutch-0.9 ( 也就是进入 nutch 解压的目录 )
bin/nutch crawl url.txt -dir crawled -depth 3 -threads 4 >& crawl.log
参数解释:
-dir dir names the directory to put the crawl in.
-depth depth indicates the link depth from the root page that should be crawled.
-delay delay determines the number of seconds between accesses to each host.
-threads threads determines the number of threads that will fetch in parallel.
http://hedong.3322.org/archives/000247.html 试用 nutch
1 、概念解释:
1 ) web database: nutch 所知道的 page, 以及在这些 page 里头的 links ( 由 injector 通过 DMOZ 往里添加 page , Dmoz(The Open Directory Project/ODP) 是一个人工编辑管理的目录集合,为 搜索引擎提供结果或数据。 )
2) segments. :是指 page 的一个集合,对它进行抓取与索引都作为同一个单元对待。它包含以下类型:
Fetchlist 这些 page 的名称的集合
Fetcher output: 这些 page 文件的集合
Index: lucene 格式的索引输出
2 、 建立 web database 与 segments
初始准备 |
|
|
|
mkdir db |
建立目录存放web database |
|
mkdir segments |
|
|
bin/nutch admin db -create |
建一个新的空的数据库( 这步出错了 ) |
第一轮抓取 |
|
|
|
bin/nutch inject db -dmozfile content.rdf.u8 -subset 3000 |
从DMOZ 列表中取得URL 并加入数据库 |
|
bin/nutch generate db segments |
根据数据库内容,生成一个抓取列表(fetchlist) |
|
s1=`ls -d segments/2* | tail -1` |
刚才生成的抓取列表放在最后一个目录中,取其名 |
|
bin/nutch fetch $s1 |
利用机器人抓页面 |
|
bin/nutch updatedb db $s1 |
利用抓取结果更新数据库 |
第二轮抓取 |
|
|
|
bin/nutch analyze db 5 |
迭代5 次分析页面的链接 |
|
bin/nutch generate db segments -topN 1000 |
将排行前1000 个URL 生成新的抓取列表 |
|
s2=`ls -d segments/2* | tail -1` |
执行抓取、更新、并迭代2 次分析链接 |
|
bin/nutch fetch $s2 |
|
|
bin/nutch updatedb db $s2 |
|
第三轮抓取 |
|
|
|
bin/nutch analyze db 2 |
|
|
bin/nutch generate db segments -topN 1000 |
|
|
s3=`ls -d segments/2* | tail -1` |
|
|
bin/nutch fetch $s3 |
|
|
bin/nutch updatedb db $s3 |
|
|
bin/nutch analyze db 2 |
(为下一次做准备?) |
索引并去重 |
|
|
|
bin/nutch index $s1 |
|
|
bin/nutch index $s2 |
|
|
bin/nutch index $s3 |
|
|
bin/nutch dedup segments dedup.tmp |
|
1) 将 nutch-0.9.war 包丢到 tomcat 发布目录
2) 修改配置文件指定索引库 .( WEB-INFclasses 下的 nutch-site.xml):
注意,当复制上述配置文件时,如果出现下列错误,是因为复制文件时带有空格或编码格式,重敲一遍即可 : java.io.UTFDataFormatException: Invalid byte 1 of 1-byte UTF-8 sequence
3) 测试 http://172.17.1.122:8081
注意,若查询字符串输出中文时出现编码问题,这个问题和 nutch 关系不大,主要是 tomcat 有关系,修改 tomcat 的 server.xml ,在 Connector 元素中增加属性:
URIEncoding="UTF-8" useBodyEncodingForURI="true"
参考:
http://www.mysoo.com.cn/news/2007/200721679.shtml Google 式的搜索引擎实现
http://today.java.net/pub/a/today/2006/01/10/introduction-to-nutch-1.html Introduction to Nutch, Part 1: Crawling
http://today.java.net/pub/a/today/2006/02/16/introduction-to-nutch-2.html Introduction to Nutch, Part 2: Searching
Nutch相关资料收集整理 http://www.gispark.com/html/spatial/2006/1008/294.html