- 浏览: 1185328 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (350)
- Ajax研究 (2)
- javascript (22)
- struts (15)
- hibernate (12)
- spring (8)
- 我的生活 (28)
- jsp (2)
- 我的随笔 (84)
- 脑筋急转弯 (1)
- struts2 (2)
- ibatis (1)
- groovy (1)
- json (4)
- flex (20)
- Html Css (5)
- lucene (11)
- solr研究 (2)
- nutch (25)
- ExtJs (3)
- linux (6)
- 正则表达式 (2)
- xml (1)
- jetty (0)
- 多线程 (1)
- hadoop (40)
- mapreduce (5)
- webservice (2)
- 云计算 (8)
- 创业计划 (1)
- android (8)
- jvm内存研究 (1)
- 新闻 (2)
- JPA (1)
- 搜索技术研究 (2)
- perl (1)
- awk (1)
- hive (7)
- jvm (1)
最新评论
-
pandaball:
支持一下,心如大海
做有气质的男人 -
recall992:
山东分公司的风格[color=brown]岁的法国电视[/co ...
solr是如何存储索引的 -
zhangsasa:
-services "services-config ...
flex中endpoint的作用是什么? -
来利强:
非常感谢
java使用json所需要的几个包 -
zhanglian520:
有参考价值。
hadoop部署错误之一:java.lang.IllegalArgumentException: Wrong FS
http://www.tianya.cn/new/TianyaCity/content.asp?idItem=296&idArticle=53561&idWriter=0&key=0
在运行的时候不会抓取到,分析了一下原因:主要在conf/crawl-urlfilter.txt.
分析:使用nutch默认的配置过滤文件的话,是不抓取到包含?*!@=等字符的URL
解决办法:修改crawl-urlfilter的过滤规则,
# The url filter file used by the crawl command.
# Better for intranet crawling.
# Be sure to change MY.DOMAIN.NAME to your domain name.
# Each non-comment, non-blank line contains a regular expression
# prefixed by '+' or '-'. The first matching pattern in the file
# determines whether a URL is included or ignored. If no pattern
# matches, the URL is ignored.
# skip file:, ftp:, & mailto: urls
-^(file|ftp|mailto):
# skip image and other suffixes we can't yet parse
-\.(gif|GIF|jpg|JPG|png|PNG|ico|ICO|css|sit|eps|wmf|zip|ppt|mpg|xls|gz|rpm|tgz|mov|MOV|exe|jpeg|JPEG|bmp|BMP)$
# skip URLs containing certain characters as probable queries, etc.
-[?*!@=] //表示过滤包含指定字符的URL,改为: -[~]
# skip URLs with slash-delimited segment that repeats 3+ times, to break loops
-.*(/.+?)/.*?\1/.*?\1/
# accept hosts in MY.DOMAIN.NAME
+^http://([a-z0-9]*\.)*tianya.cn/[\s\S]* // 过滤正则表达式,([a-z0-9]*\.)*表示任意数字和字母,[\s\S]*表示任意字符
# skip everything else
-.
Nutch爬虫设置
Nutch本身包含一个对目标站点进行索引的爬虫和一个提供搜索用的web界面。在查询界面可以使用前需要先设置Nutch爬虫对目标站点进行抓取。
部分配置文件的解释:
* nutch\conf\nutch-default.xml
o 设置http.agent.name,如果http.agent.name为空,爬虫将无法正常启动。这里可以设置任意你喜欢的名字,比如设置为vik-robot。
o indexer.mergeFactor/indexer.minMergeDocs 这两个值都改成500。这两个参数值越大,性能越高,所需要花费的内存也需要相应的增加。如果设置过大,可能出现内存溢出。就实际使用情况,在当前参数下,内存的最大使用量为3xxM。
o
http.timeout表示最大超时等待时间,如果访问的连接长时间没有反应将丢弃。
o db.max.outlinks.per.page该参数表示单个页面最多支持多少个外连的连接,如果过多将不抓取。 如果是自己的内部系统那就设置一个任意大的数吧。
o nutch-default.xml 解读
*
创建文件nutch\urls,并填入爬虫的起始url。比如:
http://mysite.com/
*
nutch\conf\crawl-urlfilter.txt 该文件用于设置需要索引的url的过滤关系。每行一个过滤条件,-表示不包含该url,+表示包含。
o [?*!@=],该行表示对所有动态url都不抓取。 现在的大部分系统都会有很多动态url,该过滤条件很可能使你抓不到任何内容。
o
针对各系统分别设置url的过滤关系。具体的设置方法得根据各自应用系统的不同而不同,这里以广为流行的论坛discuz为例。在这url过滤将只抓取板块列表和帖子内容。
# skip file:, ftp:, & mailto: urls
-^(file|ftp|mailto):
# skip image and other suffixes we can't yet parse
-\.(gif|GIF|jpg|JPG|png|PNG|ico|ICO|css|sit|eps|wmf|zip|ppt|mpg|xls|gz|rpm|tgz|mov|MOV|exe|jpeg|JPEG|bmp|BMP)$
# skip URLs containing certain characters as probable queries, etc.
#-[?*!@=]
# skip URLs with slash-delimited segment that repeats 3+ times, to break loops
-.*(/.+?)/.*?\1/.*?\1/
# accept hosts in MY.DOMAIN.NAME
#+^http://([a-z0-9]*\.)*MY.DOMAIN.NAME/
#discuz
+^http://mysite.com/discuz/index.php$
+^http://mysite.com/discuz/forumdisplay.php\?fid=\d+$
+^http://mysite.com/discuz/forumdisplay.php\?fid=\d+&page=\d+$
+^http://mysite.com/discuz/viewthread.php\?tid=\d+&extra=page%3D\d+$
+^http://mysite.com/discuz/viewthread.php\?tid=\d+&extra=page%3D\d+&page=\d+$
# skip everything else
-.
* nutch\conf\regex-urlfilter.txt 我不清楚该配置文件是否有起作用,但建议注释掉其中的,-[?*!@=]。
执行爬虫
*
由于Nutch的脚本采用的是linux下是shell,在windows下需要使用cygwin来执行。至于cygwin的具体使用...,这个到网上找其他文章吧。cygwin官网
*
进入Nutch目录后执行命令 sh bin/nutch crawl urls -dir crawl -threads 2 -depth 100 -topN 1000000 >& crawl.log 完成网站的抓取和索引。
o threads 抓取网页的线程数,理论上线程数越多速度越快,但过多的线程会给服务器带来比较大的负担,影响正常使用。
o depth 页面的抓取深度。
o topN 每层最多抓取的页面数
o crawl.log 日志存放文件
发表评论
-
nutch-1.2结合hadoop分布式搜索
2011-07-13 10:50 2664nutch-1.2结合hadoop分布式搜索。 1、网上关于 ... -
nutch-1.x分布式索引指定
2011-07-04 17:15 12801、nutch-1.x中在crawl.java中。最后有这么一 ... -
在nuthc中加入中文分词
2011-05-15 11:41 605nutch实用的分词是默认的,对中文支持的不是很好。 网上有 ... -
nutch1.2中加入中文分词以及搜索错误解决
2011-03-02 12:15 1435在nutch当中加入中文分词。这里我使用的IK_Analyze ... -
使用ant编译时错误:Specify at least one source--a file or resource
2011-02-22 11:12 2462将命令环境切换到Nutch目录下,执行ant命令。出现如下错误 ... -
readdb导致fetch job中断的问题
2011-02-16 13:39 1659Nutch readdb命令可以用来统计目前crawldb库里 ... -
Nutch fetch job中时间的分配比例
2011-02-16 13:38 1335下面是nutch fetch job中map shuffle ... -
nutch UI 多台机子部署有关jetty配置servlet的问题
2010-01-18 17:35 2469我们jetty是一个小型的web服务器,可以嵌入到程序当中去, ... -
nutch中plugin.folders的配置
2009-12-21 18:07 2424今天在公司做nutch的调试时,犯了一个低级的错误,在这里记录 ... -
把另外的一个项目加入了nutch中来
2009-12-20 23:59 1092周末在家闲的慌,把在公司搞的nutch拿回来在家里试着做了下, ... -
今天来用一个例子来详细讲解下nutch当中到底是如何自定义插件的
2009-12-17 10:29 1663接上面一篇,今天来用一个例子来详细讲解下nutch当中到底是如 ... -
nutch plugin详细分析
2009-12-16 18:06 1393当某个插件需要被加载时, Nutch 会加载所有插件的相关接口 ... -
nutch plugin的流程以及如何自定义plugin
2009-12-16 18:04 1994PluginRepository 是plugin的入口,保存了 ... -
如何读取nutch抓取数据
2009-12-16 17:43 3607如何读取nutch抓取数据 1.首先nutch的配置已经在博 ... -
Nutch1.0 Ui启动在tomcat中的配置
2009-12-07 14:09 1354<!-- @pa ... -
配置完成nutch容易出现的错误
2009-11-25 11:50 24831.1.2 运行crawl报错Job failed Ex ... -
在eclipse中如何配置nutch1.0
2009-11-25 11:44 1432<1>: 首先从http://apache.eto ... -
nutch的基本工作流程理解
2009-11-21 00:17 1899(一):Nutch的工作流程: Crawdb、l ... -
cygwin配置说明
2009-11-21 00:15 2362开始,一步一步来:了解Cygwin的人都知道,就是到 : ht ... -
第一次使用nutch
2009-11-19 23:13 1257Nutch 是一个基于Lucene开发的诞生不久的开放源代码( ...
相关推荐
1. **配置Nutch**: 首先,你需要确保Nutch已经正确安装并且配置完毕,包括设置爬虫的种子URL、配置抓取策略(如Crawl Interval)以及存储路径等。 2. **执行抓取**: 使用Nutch的`bin/nutch crawl`命令启动抓取过程...
3. **快照创建与存储**:Nutch抓取的网页会被保存为快照,这些快照包含了原始HTML内容,用于后续的索引和搜索。当Nutch遇到中文URL时,如果快照保存不当,可能会导致中文URL在存储时出现乱码,从而影响到快照的正确...
Nutch 的爬虫数据通常包括了它在抓取过程中收集到的网页URL、网页内容、元数据以及爬取日志等信息。 在Nutch的数据流程中,主要涉及以下几个关键步骤: 1. **种子URL生成**:爬虫的起点是种子URL列表,这些URL决定...
本篇培训讲义主要针对的是如何使用 Nutch 1.7 版本对腾讯微博进行抓取分析,特别强调了针对动态网页的抓取及自定义解析插件的方法。 #### 二、抓取目标与规则设置 ##### 1. 入口 URL 抓取的入口 URL 为:`...
Apache Nutch 是一个开源的网络爬虫框架,用于...每个组件都需要正确配置才能使 Nutch 正常运行。理解这些组件的作用以及它们之间的交互是掌握 Nutch 的关键,这将帮助你在大数据爬取和搜索引擎领域迈开重要的一步。
编译完成后,可以运行Nutch的命令行工具,如`bin/nutch inject`来注入种子URL,`bin/nutch fetch`执行抓取,`bin/nutch update`更新已抓取的页面,`bin/nutch generate`生成待抓取的URL列表,以及`bin/nutch crawl`...
基于Apache Nutch 1.8和Htmlunit组件,实现对于AJAX加载类型页面的完整页面内容抓取解析。 According to the implementation of Apache Nutch 1.8, we can't get dynamic ...
1. **种子页面生成**:用户可以提供初始的 URL 列表作为种子,Nutch 会从这些种子出发开始抓取。 2. **页面抓取**:Nutch 使用 HTTP 协议抓取网页,通过分布式爬虫系统并行处理大量 URL。 3. **页面解析**:抓取的...
1. **种子URL**:启动Nutch时,需要提供一批起始URL(种子URL),Nutch将从这些URL开始抓取。 2. **抓取**:Nutch使用HTTP协议抓取网页,支持多种抓取策略,如深度优先、广度优先等。 3. **解析**:抓取到的网页会被...
1. **Crawldb**:Crawldb 是 Nutch 存储已抓取 URL 的数据库,记录每个 URL 的状态,如已抓取、待抓取或已忽略。 2. **Linkdb**:Linkdb 存储了 URL 之间的链接关系,有助于确定网页的重要性,并为爬虫提供抓取顺序...
1. 抓取(Crawling):Nutch通过配置的种子URL开始,逐页抓取网页,并将这些页面存储在本地或分布式存储系统中。 2. 分析(Parsing):抓取的网页会被解析,提取出元数据(如标题、URL、链接等)和内容文本。 3. ...
3. **URL管理**:Nutch有一个URL管理系统,负责跟踪哪些URL已经被抓取,哪些需要抓取,以及如何优先级排序。这包括URL的种子列表、URL的去重策略以及URL的抓取频率控制。 4. **HTML解析**:Nutch内置了HTML解析器,...
1. **URL编码**:Nutch在抓取URL时,应考虑URL中可能包含的非ASCII字符。这些字符需要正确地解码,否则可能导致乱码。 2. **HTTP头解析**:HTTP响应头中的`Content-Type`字段通常包含了网页的编码信息,Nutch需要...
Nutch的工作流程主要包括以下几个阶段:注入(Injector)、生成抓取URL(Generator)、网页抓取(Fetcher)、网页解析(ParseSegment)、数据库更新(CrawlDb)、链接数据库处理(LinkDb)以及索引构建(Indexer)。...
1. **Web抓取(Crawling)**:Nutch的抓取模块使用了分布式爬虫架构,能够高效地发现和下载互联网上的网页。它通过种子URL开始,然后跟踪页面中的链接来发现新的URLs。这部分源码涉及了URL过滤、去重、调度算法等...
- **URL过滤**: 使用robots.txt协议来决定是否抓取某个网页,以及URL重写规则。 在解压`nutch-branch-2.2.1`后,你可以看到以下目录结构: - `src`: 源代码目录,包含了所有Nutch的Java源码。 - `conf`: 配置文件,...
Nutch是一个基于Java开发的开源网络爬虫搜索引擎,它是Apache软件基金会项目之一,主要用于抓取网页,索引网页内容,并且支持全文搜索。Nutch搜索引擎能够对局域网和整个Web进行爬取,且提供了一个命令行工具来控制...
1. **Nutch框架**:Nutch的核心框架提供了爬虫的基本架构,包括种子URL的管理、网页抓取、分词、链接分析等。框架设计灵活,支持插件机制,方便开发者根据需求定制。 2. **Fetcher模块**:负责从Web上下载网页。它...