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. mysql数据库误删除后的数据恢复操作说明

    在日常运维工作中,对于mysql数据库的备份是至关重要的!数据库对于网站的重要性使得我们对mysql数据的管理不容有失!然后,是人总难免会犯错误,说不定哪天大脑短路了来个误操作把数据库给删除了,怎么办 ...

  2. 02SpringMvc_springmvc快速入门小案例(XML版本)

    这篇文章中,我们要写一个入门案例,去整体了解整个SpringMVC. 先给出整个项目的结构图:

  3. Binary Search Tree Iterator

    Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the ro ...

  4. JS原型-语法甘露

    初看原型 JS的所有函数都有一个prototype属性,这个prototype属性本身又是一个object类型的对象. prototype提供了一群同类对象共享属性和方法的机制. 将一个基类的实例作为 ...

  5. 我们为什么需要DTO?

    看了几套源码,其中都有用到DTO,这篇文章主要来谈论一下DTO使用的场合及其带来的好处. 在传统的编程中,我们一般都是前台请求数据,发送到Webservice,然后WebService向数据库发出请求 ...

  6. [CareerCup] 8.9 An In-memory File System 内存文件系统

    8.9 Explain the data structures and algorithms that you would use to design an in-memory file system ...

  7. gcc学习

    gcc学习 预处理:gcc –E xxx.c –o xxx.i;产生预处理过的C原始程序 编 译:gcc –S xxx.i –o xxx.s;产生汇编语言原始程序 汇 编:gcc –c xxx.s – ...

  8. jQuery 模板插件jquery-tmpl

    Step1:导入脚本: <script src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")">&l ...

  9. SQL 语句大全

    转载:http://www.cnblogs.com/yubinfeng/archive/2010/11/02/1867386.html 经典SQL语句大全 一.基础 1.说明:创建数据库 CREATE ...

  10. EF实体框架之CodeFirst五

    上一博客学习了下基本的约定配置,留下几个遗漏的,这篇就是学习下遗漏一复杂类型. 一.什么是复杂类型? 书中说道:“复杂类型也可视作值类型(?)可以作为附加属性添加到其他类.复杂类型与实体类型的区别在于 ...