千家信息网

Java如何实现基于模板的网页结构化信息精准抽取组件HtmlExtractor

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,今天就跟大家聊聊有关Java如何实现基于模板的网页结构化信息精准抽取组件HtmlExtractor,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获
千家信息网最后更新 2025年01月23日Java如何实现基于模板的网页结构化信息精准抽取组件HtmlExtractor

今天就跟大家聊聊有关Java如何实现基于模板的网页结构化信息精准抽取组件HtmlExtractor,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

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.0
  html-extractor-web是一个war包,需要部署到Servlet/Jsp容器上。

单机集中式使用方法:

//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);//1.4、构造CSS路径CssPath cssPath = new CssPath();cssPath.setCssPath("h2");cssPath.setFieldName("title");cssPath.setFieldDescription("标题");//1.5、将CSS路径和模板建立关联htmlTemplate.addCssPath(cssPath);//1.6、构造CSS路径cssPath = new CssPath();cssPath.setCssPath("div#endText");cssPath.setFieldName("content");cssPath.setFieldDescription("正文");//1.7、将CSS路径和模板建立关联htmlTemplate.addCssPath(cssPath);//可象上面那样构造多个URLURL模式urlPatterns.add(urlPattern);//2、获取抽取规则对象ExtractRegular extractRegular = ExtractRegular.getInstance(urlPatterns);//注意:可通过如下3个方法动态地改变抽取规则//extractRegular.addUrlPatterns(urlPatterns);//extractRegular.addUrlPattern(urlPattern);//extractRegular.removeUrlPattern(urlPattern.getUrlPattern());//3、获取HTML抽取工具HtmlExtractor htmlExtractor = HtmlExtractor.getInstance(extractRegular);//4、抽取网页String url = "http://money.163.com/08/1219/16/4THR2TMP002533QK.html";List extractResults = htmlExtractor.extract(url, "gb2312");//5、输出结果int i = 1;for (ExtractResult extractResult : extractResults) {    System.out.println((i++) + "、网页 " + extractResult.getUrl() + " 的抽取结果");    for(ExtractResultItem extractResultItem : extractResult.getExtractResultItems()){        System.out.print("\t"+extractResultItem.getField()+" = "+extractResultItem.getValue());                  }    System.out.println("\tdescription = "+extractResult.getDescription());    System.out.println("\tkeywords = "+extractResult.getKeywords());}

多机分布式使用方法:

1、运行主节点,负责维护抽取规则:  将子项目html-extractor-web打成War包然后部署到Tomcat。2、获取一个HtmlExtractor的实例(从节点),示例代码如下:
String allExtractRegularUrl = "http://localhost:8080/HtmlExtractorServer/api/all_extract_regular.jsp";String redisHost = "localhost";int redisPort = 6379;HtmlExtractor htmlExtractor = HtmlExtractor.getInstance(allExtractRegularUrl, redisHost, redisPort);
3、抽取信息,示例代码如下:
String url = "http://money.163.com/08/1219/16/4THR2TMP002533QK.html";List extractResults = htmlExtractor.extract(url, "gb2312");int i = 1;for (ExtractResult extractResult : extractResults) {    System.out.println((i++) + "、网页 " + extractResult.getUrl() + " 的抽取结果");    for(ExtractResultItem extractResultItem : extractResult.getExtractResultItems()){        System.out.print("\t"+extractResultItem.getField()+" = "+extractResultItem.getValue());                  }    System.out.println("\tdescription = "+extractResult.getDescription());    System.out.println("\tkeywords = "+extractResult.getKeywords());}

看完上述内容,你们对Java如何实现基于模板的网页结构化信息精准抽取组件HtmlExtractor有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

抽取 节点 规则 模板 网页 信息 精准 结构 结构化 路径 组件 内容 方法 模式 结果 关联 代码 使用方法 分布式 动态 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 松江区咨询软件开发平台资质 图片过多服务器如何存放 重庆安防时钟同步服务器云服务器 浙江服务器机房联系方式 数据库一般由什么组成A记录 中科创达车联网软件开发 性能可靠分布式数据库技术 企业网络安全试点 棋牌软件开发价格表 欧拉网络技术公司 杭州网络安全作业教育平台 网络安全身份认证市场 网络安全分类分级管理试点 软件开发商务合同v2 大智慧本地数据库过旧 数据库视频怎么下载 网络安全教育方面100个字 php 数据库数据加密存储 先消费后还款的软件开发 企业服务器能干什么 参与网络安全培训学习 球员球队数据库 如何在服务器查看cpu和内存 铁路单位如何加强网络安全管理 数据库技术1500字论文 数据库分为两类分别是 华为刀片服务器维修公司 社区网络安全周宣传 随着科技和网络技术的发展 机顶盒无法连接至认证服务器
0