首页 > 代码库 > nutch的爬虫demo代码 编辑
nutch的爬虫demo代码 编辑
关键词: nutch
今日来看看Nutch怎么Parse页面的:
Nutch运用了两种Html parser东西(NekoHTML和TagSoup)来完成html的获取,这两种东西是可经过配置来选择的。
当然你要自己完成Parser你还能够选择HTMLParser[根据visitor访问者形式一起也供给了Event driver的接口]来
获取页面。假如你用惯了XML一套处置办法,运用NekoHTML和TagSoup应该会对比随手的。
咱们来看看类public class HtmlParser implements Parser的完成:
首要为了非常好的了解下面的代码先看看成员变量:
Java代码 仿制代码
private static final int CHUNK_SIZE = 2000;
private static Pattern metaPattern =
Pattern.compile("<meta\\s+([^ style="font-family: ‘sans serif‘, tahoma, verdana, helvetica; font-size: 12px; line-height: 18px;">]*http-equiv=\"?content-type\"?[^>]*)>",
Pattern.CASE_INSENSITIVE);
private static Pattern charsetPattern =
Pattern.compile("charset=\\s*([a-z][_\\-0-9a-z]*)",
Pattern.CASE_INSENSITIVE);
list.add("http://www.guozhijinan.com");
list.add("http://www.tongxinglong.com/");private String parserImpl;
CHUNK_SIZE获取html meta tag有些的html片断的长度,通常meta tag没有超越2000bytes的,所以只需要从这有些
获取就行了
metaPattern为meta tag匹的正则形式
charsetPattern为字符集编码的正则形式
parserImpl是详细运用的是NekoHTML还是TagSoup来parser html.假如parserImpl为"tagsoup"就运用TagSoup,不然就运用NekoHTML。
用来从html在meta tag里边获取出charset或Content-Type中指定的编码:
length限定在meta tag有些获取,经过正则表达式很容易获取出编码