##HtmlExtractor是一个Java实现的基于模板的网页结构化信息精准抽取组件,本身并不包含爬虫功能,但可被爬虫或其他程序调用以便更精准地对网页结构化信息进行抽取。
##HtmlExtractor是为大规模分布式环境设计的,采用主从架构,主节点负责维护抽取规则,从节点向主节点请求抽取规则,当抽取规则发生变化,主节点主动通知从节点,从而能实现抽取规则变化之后的实时动态生效。
##如何使用?
HtmlExtractor由2个子项目构成,html-extractor和html-extractor-web。
html-extractor实现了数据抽取逻辑,是从节点,html-extractor-web提供web界面来维护抽取规则,是主节点。
html-extractor是一个jar包,可通过maven引用:
org.apdplat
html-extractor
1.1
html-extractor-web是一个war包,需要部署到Servlet/Jsp容器上。
在html-extractor-web目录下运行mvn jetty:run就可以启动Servlet/Jsp容器jetty,之后打开浏览器访问:
http://localhost:8080/html-extractor-web/api/ 查看自己定义的规则。
注意:页面模板中定义的所有CSS路径和抽取表达式全部抽取成功,才算抽取成功,
只要有一个CSS路径或抽取表达式失败,就是抽取失败。
##单机集中式使用方法:
//1、构造抽取规则
List urlPatterns = new ArrayList<>();
//1.1、构造URL模式
UrlPattern urlPattern = new UrlPattern();
urlPattern.setUrlPattern("http://money.163.com/\\d{2}/\\d{4}/\\d{2}/[0-9A-Z]{16}.html");
//1.2、构造HTML模板
HtmlTemplate htmlTemplate = new HtmlTemplate();
htmlTemplate.setTemplateName("网易财经频道");
htmlTemplate.setTableName("finance");
//1.3、将URL模式和HTML模板建立关联
urlPattern.addHtmlTemplate(htmlTemplate);