Windows下Nutch的配置
Nutch是一个开源的、Java实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。
Nutch可以分为2个部分:
- 抓取部分crawler
抓取程序抓取页面并把抓取回来的数据做成反向索引
- 搜索部分searcher。
搜索程序则对反向索引搜索回答用户的请求。
Nutch的爬虫有两种方式
- 爬行企业内部网(Intranet crawling)。针对少数网站进行,用crawl命令。
- 爬行整个互联网。使用低层的inject,generate,fetch和updatedb命令,具有更强的可控制性。
昨晚折腾了一晚上终于是大功告成了!
这里要说的是基于Intranet(企业内部网)的环境配置
软件:
JDK
Cygwin
Tomcat
apache-nutch-1.2-bin.zip(http://apache.etoak.com//nutch/apache-nutch-1.2-bin.zip)
因为nutch脚本是基于Linux内核的所以在Windows下运行,就需要Cygwin这样一个内核模拟器
1。安装Cygwin(网上资料很多了,建议下载完全的安装版,然后选择从本地安装)
我们的Cygwin安装在C:/cygwin中
2。我们把nutch包解压把文件复制到C:/cygwin下,解压后的文件为nutch-1.2
3。打开安装cygwin安装时生成的快捷方式,这样就能打开cygwin的命令行,里面能执行的当然都是Linux的命令
cd进入nutch-1.2/bin下面
输入./nutch 出来nutch命令的一些选项提示 说明已成功一半
4。接下来是修改nutch-1.2/conf/nutch-site.xml
修改后如下:
<configuration>
<property>
<name>http.agent.name</name>
<value>foxman</value>
<description></description>
</property>
<property>
<name>http.agent.description</name>
<value></value>
<description></description>
</property>
<property>
<name>http.agent.url</name>
<value></value>
<description></description>
</property>
<property>
<name>http.agent.email</name>
<value></value>
<description></description>
</property>
</configuration>
6。在nutch-1.2/bin/下建立文件夹urls,然后在urls下面建立文件url.txt
里面内容是
http://www.163.com/
注:你要抓取的网站。
7。在cygwin中进入nutch-1.2/bin目录
执行
export JAVA_HOME=你JDK的安装路径,不用到JDK的bin文件那一层
配置好JAVA_HOME
接着执行
./nutch crawl urls -dir crawl -depth 5 -threads 4 -topN 50
注:urls就是你之前建立的文件夹
-dir crawl就是创建crawl文件夹来存储抓取的数据
-depth 5 就是抓取的深度
-threads 4 就是执行的线程数
-topN 50 就是每层抓取数目
这样你的抓取数据都在crawl中了
可以执行
./nutch readdb sina/crawldb/ -stats
注:查看抓取信息。
8。把nutch-1.2文件夹下的nutch-1.2.war拷到tomcat的webapps文件下
打开tomcat,nutch-1.2.war会自动被解压成同名的nutch-1.2文件夹。
9。配置nutch-1.2/WEB-INF/classes/nutch-site.xml
修改后如下
<configuration>
<property>
<name>searcher.dir</name>
<value>C:/cygwin/nutch-1.2/bin/crawl</value>
</property>
</configuration>
注:C:/cygwin/nutch-1.2/bin/crawl这个路径就是你之前抓取数据的存放路径。
10。中文乱码问题
配置tomcat的conf文件夹下的server.xml
修改如下
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true"/>
注:找到这一段,关键是添加URIEncoding="UTF-8" useBodyEncodingForURI="true"。
最好重启一下Tomcat
浏览器中输入http://localhost:8080/nutch-1.2/就可以大功告成了
常见问题:
如何解决Generator: 0 records selected for fetching, exiting ...
Stopping at depth=0 - no more URLs to fetch.
一般都会是nutch/conf/crawl-urlfilter.txt中的配置出现的不可预见的错误
好好在配一下,参照步骤5。
注意+^http://([a-z0-9]*/.)*163.com/前不要加#那就代表注释了。
我配了好久一路下来都很顺,也是卡在这个问题上半天
我当时就是这个配置错了,最好配的跟我一样斜杆什么的也不要落下了!
OK,祝好远……
原文地址:http://blog.csdn.net/foxman209/article/details/6066846
最新文章
- 3.bootstrap练习笔记-媒体内容
- AI PRO I 第4章
- Ajax关于readyState(状态值)和status(状态码)的研究
- alias命令(使用命令别名)
- JavaScript 进阶教程一 JavaScript 中的事件流 - 事件冒泡和事件捕获
- es6新特性学习
- cocopods的安装和使用
- C语言可变参数函数的编写
- maven引用net.sf.json-lib
- R12: Improving Performance of General Ledger and Journal Import (Doc ID 858725.1 )
- java程序的内存分配(二)
- redo/declare/typeset
- Django+Vue打造购物网站(八)
- PowerShell工作流学习-1-嵌套工作流和嵌套函数
- EL表达式报错: According to TLD or attribute directive in tag file, attribute value does not accept any expressions
- Swift学习笔记6
- kafka集群压力测试--基础。
- mysql 报错ERROR 1064 (42000),原因使用了mysql保留字 (right syntax to use near &#39;groups)
- “全栈2019”Java第五十七章:多态与构造方法详解
- 3.抓包神器Fiddler简介(转载)
热门文章
- JS学习笔记(6)--音乐播放器
- iOS导航栏背景,标题和返回按钮文字颜色
- postgres入门介绍
- 【Unity笔记】碰撞器(Collision)与触发器(Trigger)的区别
- Android Wear Preview- 归档通知(Stacking Notifications)
- TCP/IP和Socket的关系
- MFC 窗体样式修改
- 编写一个Filter,除继承HttpServlet类外还需要( )。
- c++下面的一个单例
- 调用ffmpeg库编译时出现common.h:175:47: error: &#39;UINT64_C&#39; was not declared in this scope