`
fffddgx
  • 浏览: 38102 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

heritrix种子选取,与扩展抓取

阅读更多

搜索引擎首先要用爬虫把网页爬下来,我用Heritrix,选择Heritrix的主要原因是因为手头有一本《Heritrix+lucene构建自己的搜索引擎》书,资料多一点困难就少一点吧。

其实这几天一直在想做什么主题的垂直搜索引擎,最后决定做汽车的。毕竟没什么经验,时间也不是很多了,我想第一期计划是完成对车的详细参数的搜索。

我选择的网站是太平洋汽车网。

首先我找到了一个可以吧所有的汽车都可以连接到的页面“http://price.pcauto.com.cn/serial_config.jsp?sid=3178”这个页面的左侧栏有一个把所有品牌和型号都罗列出来的树。保存下此页面,准备提取出此页面中的所有有用url

对页面处理的代码如下:

package tool;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class GetUrl {

	public static void main(String[] args) {
		try {
			BufferedReader br = new BufferedReader(
					new FileReader("d:\\aa.html"));
			String line = "";
			while ((line = br.readLine()) != null) {
				parse(line);
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	private static void parse(String line) {
		Pattern p = Pattern
				.compile("http://price.pcauto.com.cn/serial.jsp\\?sid=\\d+");
		Matcher m = p.matcher(line);
		while (m.find()) {
			System.out.println(m.group());
		}

	}

}


 

其中用了正在表达式把所有符合

"http://price.pcauto.com.cn/serial.jsp\\?sid=\\d+"的连接提取出来运行结果为:

http://price.pcauto.com.cn/serial.jsp?sid=374

http://price.pcauto.com.cn/serial.jsp?sid=93

http://price.pcauto.com.cn/serial.jsp?sid=3178

http://price.pcauto.com.cn/serial.jsp?sid=1603

http://price.pcauto.com.cn/serial.jsp?sid=2163

http://price.pcauto.com.cn/serial.jsp?sid=3104

......................................................................

一共有866个连接。

下一步是用这866个连接为heritrix的种子进行抓取,在抓取前还是要做前期的一些处理工作

因为heritrix如果不对链接做筛选的话后期工作是无法进行的。

1:heritrix有多个扩展点,这里我扩展FrontierSchedule,它是一个PostProcessor,它的作用是在Extractor 中所分析的

链接加到Frontier中。我写了CarFrontirer这个继承了FrontierSchedule的类对本项目的链接进行扩展:

 

package userP;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.archive.crawler.datamodel.CandidateURI;
import org.archive.crawler.postprocessor.FrontierScheduler;

public class CarFrontier extends FrontierScheduler {
	private static final long serialVersionUID = 1L;
	// Pattern p =
	// Pattern.compile("http://price.pcauto.com.cn/m\\d+/|robots.txt|dns:*");
	Pattern p = Pattern.compile("http://price.pcauto.com.cn/m\\d+/");

	public CarFrontier(String name) {
		super(name);
	}

	protected void schedule(CandidateURI caUri) {
		String url = caUri.toString();
		Matcher m = p.matcher(url);
		if (m.matches() || url.indexOf("robots.txt") != -1
				|| url.indexOf("dns:") != -1) {
			this.getController().getFrontier().schedule(caUri);
		} else {
			return;
		}
	}

}

扩展了FrontierSchedule后,要在Processor.options中加入刚才写CarFrontier这个类,并在WEB控制台Model中的post processors中选择CarFrontier

 

2:启动开始抓取我发现速度很慢,我想事不是处理robot浪费了太多时间,于是我就在Perfetcher中取消了robots.txt 的限制,方法就是找到package org.archive.crawler.prefetch.PreconditionEnforcer.considerRobotsPreconditions(),把其方法全部注释掉,最后rentrun false就可以了。你会发现你抓取的网页中没了robot.txt这个文件。

开始抓取,速度还是相当慢。

线程是1或0,平均速度7,8K

分享到:
评论

相关推荐

    heritrix抓取的操作和扩展

    对heritrix抓取的操作和扩展 里面有MirrorWriterProcessor扩展的类文件修改

    heritrix3种子载入方式

    heritrix3 灵活载入种子的方式进行了详细的介绍,通过学习可以方便的想heritrix3 载入种子!

    Heritrix3-可扩展web级别的Java爬虫项目

    Heritrix3 - 可扩展、web级别的Java爬虫项目

    heritrix抓取指南

    heritrix抓取指南heritrix抓取指南 heritrix抓取指南

    扩展Heritrix3指定链接爬取

    在网上找了许多关于Heritrix的资源,但是关于新版本heritrix3的资源很少,最近由于项目需要,认真读了heritrix的源码,扩展了Heritrix3指定链接提取,内容详细,可以在实际中使用。

    Heritrix使用详解与高级开发应用

    Heritrix使用详解与高级开发应用 Heritrix开发应用详细

    Heritrix的安装与配置

    Heritrix的安装与配置方法:文档中详细介绍了Heritrix的安装与配置,可以按照里面的方法自己安装配置。

    Heritrix—开发自己的搜索引擎

    开发自己的搜索引擎,Heritrix是一种网页抓取的有效工具

    Heritrix扩展散列算法

    Heritrix扩展散列算法

    扩展Heritrix3指定内容提取.pdf

    该文档详细介绍了如何利用heritrix3进行网页内容提取,其中内容提取模块可以自己修改,接口已经留好,具有很强的扩展性!

    web爬虫Heritrix.zip

    Heritrix是一个开源,可扩展的web爬虫项目。用户可以使用它来从网上抓取想要的资源。Heritrix设计成严格按照robots.txt文件的排除指示和META robots标签。其最出色之处在于它良好的可扩展性,方便用户实现自己的抓取...

    heritrix 配置

    heritrix 配置 网络爬虫 工具 Heritrix 是一个由 java 开发的、开源的网络爬虫,用户可以...其最出色之处在于它良好的可扩展性,方便用户实现自己的抓取逻辑。本文详细介绍了 Heritrix 在 Eclipse 中的配置、运行。

    Heritrix3手册翻译

    Heritrix User Manual https://webarchive.jira.com/wiki/display/Heritrix/Heritrix3 Heritrix3(或简称H3)指Heritrix的3.0发布。 目前官方的Heritrix 3.0.0版已经发布(2009年12月)。 后续的发行H3将是3.0.1...

    heritrix正确完整的配置heritrix正确完整的配置

    heritrix正确完整的配置heritrix正确完整的配置heritrix正确完整的配置heritrix正确完整的配置heritrix正确完整的配置

    heritrix网络爬虫

    Heritrix是一个开源,可扩展的web爬虫项目。用户可以使用它来从网上抓取想要的资源。Heritrix设计成严格按照robots.txt文件的排除指示和META robots标签。其最出色之处在于它良好的可扩展性,方便用户实现自己的抓取...

    heritrix 的详细配置 与 使用资料

    heritrix 的详细配置 与 使用资料.里面对heritrix配置有详细的说明!

    Heritrix爬虫框架 完整版

    Heritrix 是一个由 java 开发的、开源的网络爬虫,用户可以使用它来从网上抓取想要的资源。其最出色之处在于它良好的可扩展性,方便用户实现自己的抓取逻辑

    Heritrix安装详细过程

    按照这个步骤安装绝对会让你安装成功的。步骤非常的清晰。Heritrix是一个不错的选择。网络爬虫,更快更好的帮你捕捉到你想要的网页

    网络爬虫Heritrix1.14.4可直接用

    在/Heritrix1/src/org/archive/crawler/Heritrix.java启动之后,访问https://localhost:8089登录admin密码admin直接用

    Heritrix部署直接能运行的项目

    Heritrix是IA的开放源代码,可扩展的,基于整个Web的,归档网络爬虫工程 Heritrix工程始于2003年初,IA的目的是开发一个特殊的爬虫,对网上的 资源进行归档,建立网络数字图书馆,在过去的6年里,IA已经建立了400...

Global site tag (gtag.js) - Google Analytics