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主从下的slave延迟问题

    一般而言,slave相对master延迟较大,其根本原因就是slave上的复制线程没办法真正做到并发.简单说,在master上是并发模式(以InnoDB引擎为主)完成事务提交的,而在slave上,复制 ...

  2. iOS原生地图开发详解

    在上一篇博客中:http://my.oschina.net/u/2340880/blog/414760.对iOS中的定位服务进行了详细的介绍与参数说明,在开发中,地位服务往往与地图框架结合使用,这篇博 ...

  3. WPF - MVVM - 如何将ComboBox的Selectchange事件binding到ViewModel

    转:http://www.cnblogs.com/mantian/p/3713524.html 将所有的事件,属性,都映射到ViewModel中.好处多多,以后开发尽量用这种模式. 解决方法: 使用S ...

  4. WPF在XAML中Binding使用StringFormat属性

    1. 绑定Currency, 如果没有字符的话, =后面需要先加入{}. 不加的话会出问题. 1 <TextBlock Text="{Binding Amount, StringFor ...

  5. PHP版本VC6和VC9、Non Thread Safe和Thread Safe的区别

    链接:http://www.cnblogs.com/neve/articles/1863853.html 想更新个PHP的版本,PHP的windows版本已经分离出来了,见http://windows ...

  6. [3]MVC3中使用Telerik(转)

    ASP.NET MVC的Model元数据与Model模板:预定义模板 http://www.cnblogs.com/artech/archive/2012/05/02/model-metadata-a ...

  7. System类及其常用函数

    System 类包含一些有用的类字段和方法.它不能被实例化. 常用方法: 1.static void arraycopy(Object src, int srcPos, Object dest, in ...

  8. .net面试题(.Net+Html+Javascript)

    .net方面 1.简述 private. protected. public. internal 修饰符的访问权限. 2.override与重载的区别 3..net值类型和引用类型的区别,写出代码样例 ...

  9. SimpleDateFormat非线程安全

    文章列表 1)SimpleDateFormat的线程安全问题与解决方案 2)深入理解Java:SimpleDateFormat安全的时间格式化

  10. [CareerCup] 13.10 Allocate a 2D Array 分配一个二维数组

    13.10 Write a function in C called my2DAlloc which allocates a two-dimensional array. Minimize the n ...