标签归档:爬虫

windows下安装nutch1.6时遇到的一些问题小记

1.nutch1.2版本后没有crawl-urlfilter.txt这个文件,

不过多了regex-urlfilter.txt,在这个里面加入

+^http://([a-z0-9]*.)*163.com  这个代表只抓取www.163.com的内容

然后在nutch-site.xml

<property>

<name>http.agent.name</name>

<value>MSpider</value>

</property>

<property>

<name>http.agent.url</name>

<value>www.163.com</value>

</property>

2.修改java运行参数

打开Run configurations..

Run > Run Configurations…–> New Java Application-
Main class–>org.apache.nutch.crawl.Crawl
Program arguments–>urls -dir myPages -depth 2 -topN 50 或 urls -dir crawl -depth 5 -threads 4 -topN 10

然后在VM arguments输入-Xms64m -Xmx512m

3.在windows远程调试linux的程序时,报错:

Exception in thread “main” java.io.IOException: Failed to set permissions of path: tmphadoop-AdministratormapredstagingAdministrator-4954228.staging to 0700
at org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:689)
at org.apache.hadoop.fs.FileUtil.setPermission(FileUtil.java:662)
at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:509)
at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:344)
at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:189)
at org.apache.hadoop.mapreduce.JobSubmissionFiles.getStagingDir(JobSubmissionFiles.java:116)
at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:856)
at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:850)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Unknown Source)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121)
at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:850)
at org.apache.hadoop.mapreduce.Job.submit(Job.java:500)
at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:530)
at org.apache.nutch.util.NutchJob.waitForCompletion(NutchJob.java:50)
at org.apache.nutch.crawl.GeneratorJob.run(GeneratorJob.java:191)
at org.apache.nutch.crawl.Crawler.runTool(Crawler.java:68)
at org.apache.nutch.crawl.Crawler.run(Crawler.java:152)
at org.apache.nutch.crawl.Crawler.run(Crawler.java:250)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
at org.apache.nutch.crawl.Crawler.main(Crawler.java:257)

这个是Windows下文件权限问题,在Linux下可以正常运行,不存在这样的问题。

解决方法是,修改/hadoop-1.0.2/src/core/org/apache/hadoop/fs/FileUtil.java里面的checkReturnValue,注释掉即可(有些粗暴,在Window下,可以不用检查):

……privatestaticvoidcheckReturnValue(booleanrv,Filep,FsPermissionpermission)throwsIOException{/** if (!rv) { throw new IOException(“Failed to set permissions of path: ” + p + ” to ” + String.format(“%04o”, permission.toShort())); } **/}……

重新编译打包hadoop-core-1.0.2.jar,替换掉hadoop-1.0.2根目录下的hadoop-core-1.0.2.jar即可。

这里提供一份修改版的hadoop-core-1.0.2-modified.jar文件,替换原hadoop-core-1.0.2.jar即可。

替换之后,刷新项目,设置好正确的jar包依赖,现在再运行WordCountTest,即可。

成功之后,在Eclipse下刷新HDFS目录,可以看到生成了ouput2目录:

 

https://skydrive.live.com/?cid=cf7746837803bc50&id=CF7746837803BC50%211276

一些Nutch的学习资料

1)Nutch简介及安装

(1)Nutch1.4安装及测试

地址:http://blog.csdn.net/lidexin2003/article/details/7316188

(2)Linux下单机配置Nutch

地址:http://blog.csdn.net/zklth/article/details/5618948

(3)Linux下安装tomcat

地址:http://blog.sina.com.cn/s/blog_59b976a10100a3w1.html

(4)CentOS tomcat普通用户执行配置安装

地址:http://os.51cto.com/art/201002/184813.htm

(5)Linux下Tomcat的安装

地址:http://wanwentao.blog.51cto.com/2406488/548796

(6)nutch百度百科

地址:http://baike.baidu.com/view/46642.htm

2)Solr简介及安装

(1)不错的 solr 使用安装介绍

地址:http://www.cnblogs.com/cy163/archive/2009/09/18/1569681.html

(2)Linux下部署Solr

地址:http://www.cnblogs.com/TerryLiang/archive/2009/09/12/1565359.html

(3)Lucene & Solr

地址:http://www.cnblogs.com/limei/archive/2011/10/09/2204024.html

(4)ubuntu下Apache Solr的安装流程

地址:http://blog.csdn.net/hzcyclone/article/details/7026958

(5)solr 3.5 配置及应用(一)

地址:http://blog.csdn.net/chunming8302/article/details/7321367

(6)Solr 3.5 + Tomcat7 + mmseg4j + 搜狗词库 -配置并运行

地址:http://www.cnblogs.com/hamy/archive/2012/02/17/2355413.html

(7) Linux上 Nutch 1.3 + Solr 3.4.0 + Tomcat6.0 搜索引擎单节点搭建笔记

地址:http://blog.csdn.net/sikangtina/article/details/7104599

3)Nutch简单应用

(1)nutch1.0各种命令

地址:http://blog.csdn.net/ninjuli/article/details/4201055

(2)nutch命令详解

地址:http://hi.baidu.com/867862605/blog/item/bf65f51898460105403417c0.html

(3)Nutch 1.3 学习笔记2

地址:http://blog.csdn.net/amuseme_lu/article/details/6710221

4)Eclipse开发配置

(1)Eclipse安装ivyDe插件

地址:http://blog.csdn.net/lunwenbiji/article/details/7259150

(2)Nutch学习笔记

地址:http://www.cnblogs.com/streamhope/category/310177.html

(3)备忘录:Nutch+eclipse配置

地址:http://blog.csdn.net/wuyamony/article/details/7181491

(4)Nutch1.4 windows下eclipse配置图文详解

地址:http://wenku.baidu.com/view/d3b61414f18583d049645982.html

(5)nutch1.4在eclipse里配置

地址:http://www.haogongju.net/art/1225307

(6)eclipse部署配置nutch1.3

地址:http://wangwei3.iteye.com/blog/816056

(7)WinXP+cygwin+eclipse配置nutch-1.2,添加IKAnalyzer中文分词

地址:http://blog.csdn.net/neo_2011/article/details/6943622

(8)nutch1.1导入eclipse中运行

地址:http://xtfncel.iteye.com/blog/756735

(9)win7下cygwin + Eclipse + Nutch1.2 + Tomcat6 安装配置

地址:http://blog.csdn.net/eaglex/article/details/6314450

转-Nutch二次开发学习笔记

原文地址:http://ileo.me/2012/03/18/nutch1-2/

此笔记分为四个部分

1.Nutch1.2二次开发详细攻略(一)【图文】——Windows平台下Cygwin环境的搭建

2.Nutch1.2二次开发详细攻略(二)【图文】——Windows平台下Nutch1.2的搭建

3.Nutch1.2二次开发详细攻略(三)【图文】——Nutch1.2二次开发(关于界面修改)

4.Nutch1.2二次开发详细攻略(四)【图文】——Nutch1.2二次开发(关于中文分词)

 

由博主在2011-07-27 整理发布在原博客上(http://www.cnblogs.com/streamhope),由于图片和格式排版问题,就没有转发到新的博客。

当然你也可以下载博主整理的PDF文档

点击下载Nutch1.2二次开发攻略

另外博主为你准备了一些基础文档,有助于你更好的理解工作机理。

点击下载Nutch入门学习

点击下载Nutch插件机制分析

点击下载Nutch0.8.1 API帮助文档

希望以上资料对大家有所帮助,欢迎大家一起交流。

开源网络爬虫介绍及其比较

原文链接:http://cq-cser.cn/2010/06/开源网络爬虫介绍及其比较/

开源网络爬虫介绍及其比较

Planet – Chinahttp://secinn.appspot.com/planet/feed?site=cn

Nutch

开发语言:Java

http://lucene.apache.org/nutch/

简介:

Apache的子项目之一,属于Lucene项目下的子项目。

Nutch是一个基于Lucene,类似Google的完整网络搜索引擎解决方案,基于Hadoop的分布式处理模型保证了系统的性能,类似Eclipse的插件机制保证了系统的可客户化,而且很容易集成到自己的应用之中。

Larbin

开发语言:C++

http://larbin.sourceforge.net/index-eng.html

简介

larbin是一种开源的网络爬虫/网络蜘蛛,由法国的年轻人 Sébastien Ailleret独立开发。larbin目的是能够跟踪页面的url进行扩展的抓取,最后为搜索引擎提供广泛的数据来源。

Larbin只是一个爬虫,也就是说larbin只抓取网页,至于如何parse的事情则由用户自己完成。另外,如何存储到数据库以及建立索引的事情 larbin也不提供。

latbin最初的设计也是依据设计简单但是高度可配置性的原则,因此我们可以看到,一个简单的larbin的爬虫可以每天获取500万的网页,非常高效。

Heritrix

开发语言:Java

http://crawler.archive.org/

简介

与Nutch比较

和 Nutch。二者均为Java开源框架,Heritrix 是 SourceForge上的开源产品,Nutch为Apache的一个子项目,它们都称作网络爬虫/蜘蛛( Web Crawler),它们实现的原理基本一致:深度遍历网站的资源,将这些资源抓取到本地,使用的方法都是分析网站每一个有效的URI,并提交Http请求,从而获得相应结果,生成本地文件及相应的日志信息等。

Heritrix 是个 “archival crawler” — 用来获取完整的、精确的、站点内容的深度复制。包括获取图像以及其他非文本内容。抓取并存储相关的内容。对内容来者不拒,不对页面进行内容上的修改。重新爬行对相同的URL不针对先前的进行替换。爬虫通过Web用户界面启动、监控、调整,允许弹性的定义要获取的URL。

二者的差异:

Nutch 只获取并保存可索引的内容。Heritrix则是照单全收。力求保存页面原貌

Nutch 可以修剪内容,或者对内容格式进行转换。

Nutch 保存内容为数据库优化格式便于以后索引;刷新替换旧的内容。而Heritrix 是添加(追加)新的内容。

Nutch 从命令行运行、控制。Heritrix 有 Web 控制管理界面。

Nutch 的定制能力不够强,不过现在已经有了一定改进。Heritrix 可控制的参数更多。

Heritrix提供的功能没有nutch多,有点整站下载的味道。既没有索引又没有解析,甚至对于重复爬取URL都处理不是很好。

Heritrix的功能强大 但是配置起来却有点麻烦。

其他网络爬虫介绍:

 

WebLech 
WebLech是一个功能强大的Web站点下载与镜像工具。它支持按功能需求来下载web站点并能够尽可能模仿标准Web浏览器的行为。WebLech有一个功能控制台并采用多线程操作。
http://weblech.sourceforge.net/
Arale 
Arale主要为个人使用而设计,而没有像其它爬虫一样是关注于页面索引。Arale能够下载整个web站点或来自web站点的某些资源。Arale还能够把动态页面映射成静态页面。
http://web.tiscali.it/_flat/arale.jsp.html

J-Spider 
J-Spider:是一个完全可配置和定制的Web Spider引擎.你可以利用它来检查网站的错误(内在的服务器错误等),网站内外部链接检查,分析网站的结构(可创建一个网站地图),下载整个Web站点,你还可以写一个JSpider插件来扩展你所需要的功能。
http://j-spider.sourceforge.net/

spindle 
spindle 是一个构建在Lucene工具包之上的Web索引/搜索工具.它包括一个用于创建索引的HTTP spider和一个用于搜索这些索引的搜索类。spindle项目提供了一组JSP标签库使得那些基于JSP的站点不需要开发任何Java类就能够增加搜索功能。
http://www.bitmechanic.com/projects/spindle/

Arachnid 
Arachnid: 是一个基于Java的web spider框架.它包含一个简单的HTML剖析器能够分析包含HTML内容的输入流.通过实现Arachnid的子类就能够开发一个简单的Web spiders并能够在Web站上的每个页面被解析之后增加几行代码调用。 Arachnid的下载包中包含两个spider应用程序例子用于演示如何使用该框架。
http://arachnid.sourceforge.net/

LARM 
LARM能够为Jakarta Lucene搜索引擎框架的用户提供一个纯Java的搜索解决方案。它包含能够为文件,数据库表格建立索引的方法和为Web站点建索引的爬虫
http://larm.sourceforge.net/

JoBo 
JoBo 是一个用于下载整个Web站点的简单工具。它本质是一个Web Spider。与其它下载工具相比较它的主要优势是能够自动填充form(如:自动登录)和使用cookies来处理session。JoBo还有灵活的下载规则(如:通过网页的URL,大小,MIME类型等)来限制下载。
http://www.matuschek.net/software/jobo/index.html

snoics-reptile 
snoics -reptile是用纯Java开发的,用来进行网站镜像抓取的工具,可以使用配制文件中提供的URL入口,把这个网站所有的能用浏览器通过GET的方式获取到的资源全部抓取到本地,包括网页和各种类型的文件,如:图片、flash、mp3、zip、rar、exe等文件。可以将整个网站完整地下传至硬盘内,并能保持原有的网站结构精确不变。只需要把抓取下来的网站放到web服务器(如:Apache)中,就可以实现完整的网站镜像。
http://www.blogjava.net/snoics

Web-Harvest 
Web-Harvest是一个Java开源Web数据抽取工具。它能够收集指定的Web页面并从这些页面中提取有用的数据。Web-Harvest主要是运用了像XSLT,XQuery,正则表达式等这些技术来实现对text/xml的操作。
http://web-harvest.sourceforge.net

spiderpy
spiderpy是一个基于Python编码的一个开源web爬虫工具,允许用户收集文件和搜索网站,并有一个可配置的界面。
http://pyspider.sourceforge.net/

The Spider Web Network Xoops Mod Team 
pider Web Network Xoops Mod是一个Xoops下的模块,完全由PHP语言实现。
http://www.tswn.com/

HiSpider is a fast and high performance spider with high speed

严格说只能是一个spider系统的框架, 没有细化需求, 目前只是能提取URL, URL排重, 异步DNS解析, 队列化任务, 支持N机分布式下载, 支持网站定向下载(需要配置hispiderd.ini whitelist).

特征和用法:

  • 基于unix/linux系统的开发
  • 异步DNS解析
  • URL排重
  • 支持HTTP 压缩编码传输 gzip/deflate
  • 字符集判断自动转换成UTF-8编码
  • 文档压缩存储
  • 支持多下载节点分…

 

Methanol 是一个模块化的可定制的网页爬虫软件,主要的优点是速度快。