nutch 1.0 读源码,过滤掉不正确的URL实现方法:
对URL不规则或想过滤掉的地方,可以通过修改源码来实现,省去写配置文件,因为配置文件并不是太明朗,有些配置了也不一定成功。所以我考虑在源码
上作操作。更好地扩展。当然你也可以去写插件,这儿就不说了,因为我也没有去那样实现,我只是对插件进行了扩展采集自己想要的内容。
过滤URL部分:
类:CrawlDbFilter
// 对url过滤的处理方法。可以实现一个自己的过滤器对URL进行重新定义成自己喜欢的URL
public void map(Text key, CrawlDatum value,
OutputCollector<Text, CrawlDatum> output,
Reporter reporter) throws IOException {
String url = key.toString();
if (urlNormalizers) {
try {
url = normalizers.normalize(url, scope); // normalize the url
} catch (Exception e) {
LOG.warn("Skipping " + url + ":" + e);
url = null;
}
}
if (url != null && urlFiltering) {
try {
//此处为过滤的URL规则
url = filters.filter(url); // filter the url
} catch (Exception e) {
LOG.warn("Skipping " + url + ":" + e);
url = null;
}
}
//在此加入自己的过滤器:如定义MyUrlFilter
//即可以如此判断:
// if(url != null){
// url = MyUrlFilter.filter(url);//处理掉不要的url
// }
//如果两次过滤都符合要求规则,则为有效URL
if (url != null) { // if it passes
newKey.set(url); // collect it
output.collect(newKey, value);
}
}
原文来自:http://nhy520.iteye.com/blog/693512
分享到:
相关推荐
### Nutch 的安装方法详解 #### 一、前言 Nutch是一款开源的网络爬虫项目,基于Hadoop实现,可以抓取整个互联网,并且能够根据网页内容进行索引和检索。本文将详细介绍如何在Windows环境下安装配置Nutch,使初学者...
2. 将Hadoop的`conf`目录添加到Nutch的类路径中,可以通过修改`bin/nutch`脚本来实现。 **六、监控和优化** 1. 使用Nutch的日志文件跟踪抓取进度和错误。 2. 调整抓取参数,如并发度、重试策略、超时设置等,以优化...
同时,URLFilters 类会过滤掉不符合规则或者重复的 URL,以防止无效数据进入系统。 2. **URL 合并**:在注入过程中,Injector 会检查 URL 是否已经存在于 CrawlDB 中。如果存在,那么旧的记录会被新的记录替换,以...
同时,还需要配置`conf/regex-urlfilter.txt`和`conf/fetcher.properties`等文件,以实现特定的URL过滤和抓取行为。 四、Nutch插件系统 Nutch的强大之处在于其插件机制,用户可以根据需求编写自己的插件,如自定义...
- **URLFilter**:用于过滤URL地址,例如排除不感兴趣的站点或路径。 - **HtmlParseFilter**:对页面解析后的结果进行进一步的过滤或修改,以满足特定的处理需求。 - **Parser**:对网页内容进行解析,提取有用的...
总结来说,Nutch 是一个强大的开源网络爬虫工具,借助 Hadoop 实现了大规模的网页抓取和搜索功能。学习和使用 Nutch 可以帮助开发者深入了解 Web 数据抓取和搜索引擎的工作原理,对于大数据处理和信息提取有着重要的...
可以通过以下步骤实现: 1. 访问Nutch的源码库,找到相应的库文件: - MP3解析库:`http://nutch.cvs.sourceforge.net/nutch/nutch/src/plugin/parse-mp3/lib` - RTF解析库:`...
8. **插件系统**:Nutch具有强大的插件架构,允许开发者轻松添加新的功能,如新的解析器、新的索引器或新的URL过滤规则。插件开发可以极大地扩展Nutch的功能。 9. **索引存储**:Nutch通常使用Apache Lucene作为其...
5. **URL Filter插件**:这些插件对Nutch要抓取的URL进行过滤,可以根据正则表达式或其他规则限制爬取范围。 6. **Analyzer插件**:针对特定语言的文本分析器,如英文或中文分词器,提供文本预处理功能。 Nutch...
- **URL过滤器**:过滤重复或不相关的URL,避免无效抓取。 - **分割器**:将大文件分割成适合索引的小块。 2. **Nutch 索引过程** - **分析器**:对抓取的网页内容进行分词,去除停用词,进行词干化等预处理。 ...
Nutch-1.5.1源码是Apache Nutch项目的一个重要版本,它是一个高度可扩展的、开源的网络爬虫和全文搜索引擎框架。Nutch最初由Doug Cutting创建,后来成为了Hadoop项目的一部分,因为其在大数据处理和分布式计算方面的...
- 对URL进行格式化和过滤,去除无效URL,设置初始状态为未抓取(UNFETCHED)。 - 合并重复URL,保留最新的状态。 - 将处理后的URL及其状态保存至crawldb数据库。 #### 四、生成抓取列表(Generate) - **定义**...
了解并正确配置这些文件对于优化Nutch的性能和实现特定功能至关重要。 在实际使用中,开发者和管理员需要根据项目的具体需求来调整这些配置文件,比如调整爬虫的速度以避免对目标网站造成过大压力,或者定制分词...
3. **编辑URL过滤规则**:修改`conf`目录下的`regex-urlfilter.txt`文件,调整规则以仅爬取特定域名下的URL。 4. **执行爬行命令**:使用`bin/nutch crawl urls -dir <output_dir> -depth <depth> -topN <num>`命令...
在Cygwin的终端中,通过设置环境变量来实现: ``` export NUTCH_JAVA_HOME=/path/to/jdk ``` 接着需要配置Tomcat的环境,将Tomcat的安装路径配置到环境变量中,如: ``` export TOMCAT_HOME=/path/to/tomcat ``` ...
2. **编辑 URL 过滤器文件**:编辑文件 `conf/crawl-urlfilter.txt`,并将 `MY.DOMAIN.NAME` 替换为希望爬取的域名。例如,如果希望限制爬取范围到 `apache.org` 域名,则应将文本替换为: ``` +^http://([a-z0-9]...
Nutch是一个高度可扩展的开源搜索引擎,它提供了网页抓取、解析、过滤、索引和搜索等功能。Nutch最初设计的目标是创建一个与商业搜索引擎相媲美的开放源代码搜索解决方案,用于企业内部或特定领域的信息检索。 2. ...
Nutch不仅仅是一个爬虫,它还包括了索引、搜索等多个环节,旨在实现完整的搜索引擎解决方案。 **二、Nutch的工作流程** Nutch的工作流程主要包括以下几个步骤: 1. **种子URL生成**:首先,你需要提供一组起始URL...