nutch过滤规则crawl-urlfilter.txt vs regex-urlfilter.txt
需要注意在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
首先有一种说法是:crawl-urlfilter.txt
是供intranet(局域网) 抓取用的,
而regex-urlfilter.txt
是供internet(互联网) 抓取用的
因为两者抓取的重点不同,从而导致过滤规则不同。如果你只是想知道两者的简单区别的话,那么看到这里也就可以了,但是如果你想知道更多细节那么下面的内容还是值得一看的
crawl-urlfilter.txt
和 regex-urlfilter.txt
都是用来保存过滤url 的正则表达式的。类
RegexURLFilter(org.apache.nutch.net.RegexURLFilter) 通过
NutchConf.get().get(“urlfilter.regex.file”)
来从中(当然如果你装载了其他配置文件的话,也可能有其他的候选者)进行选择。
regex-urlfilter.txt
是 urlfilter.regex.file 属性的缺省值(1)
,
定义在 $NUTCH_JAVA_HOME/conf/nutch-default.xml(如果你设置了环境变量NUTCH_CONF_DIR
的话,那就是 $NUTCH_CONF_DIR/nutch-default.xml)中。该值可以被后续加载的配置文件所覆盖,例如如果你装载了类
CrawlTool(org.apache.nutch.tool.CrawlTool),那么缺省值就会被 crawl-tool.xml
中的urlfilter.regex.file 属性覆盖(2)
。也就是说,如果你在操作过程中调用了类CrawlTool,那么类RegexURLFilter 将会采用crawl-tool.xml 中指定的文件,否则就用缺省的文件。
当然如果nutch-site.xml 中也定义了urlfilter.regex.file 属性的话,那么
NutchConf.get().get(“urlfilter.regex.file”) 返回的值就以nutch-site.xml
所指定的值为准。(关于nutch 的resource chain)
注:(1)NutchConf 初始化时会装载nutch-default.xml 和nutch-site.xml
public class NutchConf {
......
public NutchConf() {
resourceNames.add("nutch-default.xml");
resourceNames.add("nutch-site.xml");
}
......
}
(2)装载类CrawlTool 时,crawl-tool.xml 会被插入到resource chain 中
public class CrawlTool {
......
static {
NutchConf.get().addConfResource("crawl-tool.xml");
}
......
}
分享到:
相关推荐
它提供了从互联网抓取网页、分析链接关系、生成倒排索引等一系列功能。Nutch 的设计目标是可扩展性和灵活性,使其能适应各种规模的网络数据抓取任务。 **Nutch 搭建过程** 1. **准备工作** 在开始搭建 Nutch 环境...
2. **页面抓取**:Nutch 使用 HTTP 协议抓取网页,通过分布式爬虫系统并行处理大量 URL。 3. **页面解析**:抓取的 HTML 页面会被解析成文本和元数据,以便进一步处理。 4. **存储**:抓取的页面被存储在 HDFS...
Apache Nutch 是一个流行的开源网络爬虫项目,用于抓取和索引互联网上的网页。在深入理解 Nutch 的工作原理之前,了解其源码是至关重要的。本文将解析 Nutch-0.9 版本中的 `Crawl` 类,它是 Nutch 抓取流程的起点。 ...
本篇培训讲义主要针对的是如何使用 Nutch 1.7 版本对腾讯微博进行抓取分析,特别强调了针对动态网页的抓取及自定义解析插件的方法。 #### 二、抓取目标与规则设置 ##### 1. 入口 URL 抓取的入口 URL 为:`...
Apache Nutch 是一个开源的网络爬虫框架,用于抓取互联网上的网页并建立索引,以便进行全文搜索。Nutch 2.2.1 是一个稳定版本,它依赖于其他几个组件来完成其功能,包括 Apache Ant、Apache Tomcat、Java 开发工具包...
1. 抓取(Crawling):Nutch通过配置的种子URL开始,逐页抓取网页,并将这些页面存储在本地或分布式存储系统中。 2. 分析(Parsing):抓取的网页会被解析,提取出元数据(如标题、URL、链接等)和内容文本。 3. ...
- **`crawlDb`**:存储待抓取和已抓取的URL信息,是Nutch抓取策略的基础。 - **`linkDb`**:记录网页间的链接关系,用于计算页面排名(如PageRank算法)。 - **`segments`**:临时存储每次抓取的网页数据,便于后续...
Nutch是Apache开发的一款开源网络爬虫项目,用于抓取互联网上的网页并建立索引,以便于搜索引擎进行数据处理。然而,在实际使用过程中,由于编码问题,Nutch可能会出现部分网页乱码的情况。本篇文章将深入探讨这个...
1. **多线程抓取**:Nutch 支持多线程抓取网页,提高爬虫的抓取速度和效率。 2. **URL管理**:Nutch 使用URL存储库来管理已抓取和待抓取的URL,确保不重复抓取和避免死循环。 3. **链接分析**:Nutch 集成了PageRank...
2. **HTML解析与预处理**:Nutch抓取的网页会被解析成DOM结构,以便提取有用的内容,如文本、链接等。预处理步骤包括去除HTML标记、清理HTML实体、链接去重等,以提高后续处理的效率和准确性。 3. **分词与索引**:...
Nutch是一个强大的Web爬虫框架,它提供了从互联网上抓取网页、解析HTML、提取链接、存储数据等一系列功能。Nutch与Hadoop紧密结合,利用分布式计算能力处理大规模数据,适合构建大规模的搜索引擎系统。 二、Nutch...
Nutch 的爬虫数据通常包括了它在抓取过程中收集到的网页URL、网页内容、元数据以及爬取日志等信息。 在Nutch的数据流程中,主要涉及以下几个关键步骤: 1. **种子URL生成**:爬虫的起点是种子URL列表,这些URL决定...
- **网页抓取**:Nutch使用爬虫技术,通过种子URL开始,遍历互联网上的链接,逐步抓取网页。 - **HTML解析**:抓取的网页会被解析成HTML文档,提取出有用的信息如标题、正文等。 - **链接分析**:Nutch使用...
Nutch是一款开源的网络爬虫项目,用于抓取和索引互联网上的网页。在处理大量文本数据时,可能会遇到字符编码问题,导致显示为“乱码”。本篇将深入探讨Nutch乱码的问题,以及如何进行修复。 乱码通常发生在以下几个...
Nutch 0.9 允许开发者通过修改配置文件来调整其行为,如设置抓取间隔、选择爬行策略、定义解析规则等。这使得 Nutch 可以适应各种不同的需求和场景。 7. **Hadoop 集成**: 在 Nutch 0.9 中,Hadoop 被用来处理...
Nutch 是一个开源的网络爬虫项目,用于抓取网页并建立索引。它与 Hadoop 紧密集成,支持大规模数据处理。在安装和配置 Nutch 开发环境时,可能会遇到各种问题,以下是对这些问题的详细解答。 首先,确保你已经下载...