http://blog.csdn.net/jimanyu/article/details/5619949

一:配置Nutch:

1、解压缩的nutch后,以抓取http://www.163.com/为例, 新建一个文件urls,在文件中输入http://www.163.com/保存,这个文件可以放在任何地方(我这个文件放在D:/nutch/urls),另外再建立一个爬虫日志目录logs(我放在D:/nutch/logs)

打开nutch-0.9/conf/crawl-urlfilter.txt文件,把MY.DOMAIN.NAME字符替换为myurl内的域名(比如我改成了“+^http://([a-z0-9]*/.)*163.com/”,其实更简单点,直接删除MY.DOMAIN.NAME这几个字就可以了,也就是说,只保存+^http://([a-z0-9]*/.)*这几个字就可以了,表示所有http的网站都同意爬行)。
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>

修改<value></value>,输入<value>www.163.com</value>,这里的设置,是因为nutch遵守了robots协议,在获取response时,把自己的相关信息提交给被爬行的网站,以供识别。

二:解决搜索动态内容的问题:
 需要注意在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
执行命令: 
        bin/ nutch crawl urls -dir mydir -depth 3 -threads 4 -topN 50

说明:
-dir  dirnames      设置保存所抓取网页的目录. 
-depth  depth   表明抓取网页的层次深度
-delay  delay    表明访问不同主机的延时,单位为“秒”
-threads  threads      表明需要启动的线程数
-topN number    在每次迭代中限制爬行的头几个链接数,默认是Integer.MAX_VALUE
运行结束后,查看log.txt日志,会有爬虫检索网页的详细信息。
     问题的解决:运行的过程中报错:

四:部署到tomcat下面:
1:配置nutch-0.9.war包中的文件

解压开nutch-0.9.war,然后修改nutch-0.9/webapps/ nutch-0.9/WEB-INF/classes/nutch-site.xml文件如下:
<configuration>
<property>
  <name>searcher.dir</name>
  <value>D://nutch//mydir</value>
</property>
</configuration>

将nutch-0.9重命名为ROOT,替换C:/Program Files/Apache-tomcat/webapps下的ROOT文件夹,为了支持中文的搜索,修改Tomcat/conf/server.xml。找到对应的地方修改成

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" 
   redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true"/>

2:把应用部署到tomcat的webapps下面,启动tomcat,访问应用:http://localhost:8080/就可以了

Nutch的配置以及动态网站的抓取的更多相关文章

  1. Python动态网站的抓取

    网页下载器 # coding:utf-8import requestsimport urllib2import systype = sys.getfilesystemencoding()class H ...

  2. 爬虫---selenium动态网页数据抓取

    动态网页数据抓取 什么是AJAX: AJAX(Asynchronouse JavaScript And XML)异步JavaScript和XML.过在后台与服务器进行少量数据交换,Ajax 可以使网页 ...

  3. C# 从需要登录的网站上抓取数据

    [转] C# 从需要登录的网站上抓取数据 背景:昨天一个学金融的同学让我帮她从一个网站上抓取数据,然后导出到excel,粗略看了下有1000+条记录,人工统计的话确实不可能.虽说不会,但作为一个学计算 ...

  4. WordPress快速增加百度收录,加快网站内容抓取

    本文已同步到专业技术网站 www.sufaith.com, 该网站专注于前后端开发技术与经验分享, 包含Web开发.Nodejs.Python.Linux.IT资讯等板块. 利用百度站长平台提供的链接 ...

  5. WebScraper for Mac(网站数据抓取软件) 4.10.2

    WebScraper Mac版是一款Mac平台上通过使用将数据导出为JSON或CSV的简约应用程序,WebScraper Mac版可以快速提取与某个网页(包括文本内容)相关的信息.WebScraper ...

  6. 基于selenium+phantomJS的动态网站全站爬取

    由于需要在公司的内网进行神经网络建模试验(https://www.cnblogs.com/NosenLiu/articles/9463886.html),为了更方便的在内网环境下快速的查阅资料,构建深 ...

  7. 倔强的网站数据抓取,关键时刻还需Webbrowser显身手

    由于最近台风挺多,公司网站上需要挂上台风预报信息,就整了个抓取台风数据(至于抓数据的概念和实践手册我以前写的一篇博客里面有介绍:分享一套抓数据小程序,客户资料.实时新闻.股票数据…随心抓)的服务,做调 ...

  8. SpringCloud系列九:SpringCloudConfig 基础配置(SpringCloudConfig 的基本概念、配置 SpringCloudConfig 服务端、抓取配置文件信息、客户端使用 SpringCloudConfig 进行配置、单仓库目录匹配、应用仓库自动选择、仓库匹配模式)

    1.概念:SpringCloudConfig 基础配置 2.具体内容 通过名词就可以发现,SpringCloudConfig 核心作用一定就在于进行配置文件的管理上.也就是说为了更好的进行所有微服务的 ...

  9. .net网站数据抓取

    最新项目需要抓取人民币汇率中间价的数据,所以就写了个简单的爬虫抓取数据.抓取的网站为:http://www.safe.gov.cn/wps/portal/sy/tjsj_hlzjj_inquire # ...

随机推荐

  1. Java NIO 概述

    Channel 和 Buffer 标准的Java IO编程接口是面向字节流和字符流的 而 NIO 是面向通道和缓冲区的 数据总是从通道中读到Buffer中,或者从Buffer写入通道中 NIO可以理解 ...

  2. 研:手势与眼动相结合-手势SDK的整合

    Leap提供了SDK.但是整合有很多的问题,写博客记录一下: 写一个类:SampleListener.cpp以及头文件SampleListener.h. 这里主要碰到的问题是找不到以及冲突问题: 这里 ...

  3. [转]服务器自动化操作 RunDeck

    From : http://www.oschina.net/p/rundeck/similar_projects?sort=view&lang=25 RunDeck 是用 Java/Grail ...

  4. 项目中使用RDLC报表

    原文地址:http://www.cnblogs.com/wuhuacong/p/4109833.html RDLC是一个不错的报表,有着比较不错的设计模式和展现效果,在我的Winform开发里面,使用 ...

  5. jquery-lazyload延迟加载图片 及 加载顺序 bug 修复

    jquery-lazyload延迟加载图片   代码修改片段 function update() { var counter = 0; /**fix by weiyj start***/ elemen ...

  6. eclipse项目编码问题

    使得eclipse的新建项目的默认编码直接为UTF-8: 在菜单栏的Window->Preferences->General->Workspace->Text file enc ...

  7. (转)shell实例手册

    原文地址:http://hi.baidu.com/quanzhou722/item/f4a4f3c9eb37f02d46d5c0d9 实在是太好的资料了,不得不转 shell实例手册 0说明{ 手册制 ...

  8. C#基础之枚举

    1.认识Enum 以前一直以为Enum是值类型,在VS中查看Enum的定义时才发现它是一个抽象的类.但是这个类很奇怪,Enum继承了ValueType这个很熟悉的值类型基类,它是唯一一个继承自Valu ...

  9. Andriod Studio Clear Project或Rebuild Project出错

    以前在Eclipse中出现过类似的错误:在编译工程时,提示无法删除bin目录下的某个jar. 想不到Android Studio中也会有. Clear Project或Rebuild Project, ...

  10. 开源搜索引擎Iveely 0.8.0发布,终见天日

    这是一篇博客,不是,这是一篇开源人的心酸和喜悦,没有人可以理解我们的心情,一路的辛酸一路的艰辛,不过还好,在大家的支持下,总算是终见天日,谢谢那些给予我们无私帮助的朋友.您的支持,依然是我们无限的动力 ...