自动采集推送(JDK的javanet包提供的HttpURLConnection技术,你了解多少?)
优采云 发布时间: 2021-12-29 13:03自动采集推送(JDK的javanet包提供的HttpURLConnection技术,你了解多少?)
JDK的java net包提供的HttpURLConnection技术,很多早期的应用系统都是通过这个jar包实现数据采集的,但是对于大多数应用来说,JDK库本身提供的功能还不够丰富和灵活。近年来,科研应用开发者开始热衷于HttpClient技术来实现数据采集。HttpClient 是 ApacheJakarta Common 下的一个子项目,可用于提供高效、最新、功能丰富的支持 HTTP 协议的客户端编程工具包,可以支持 HTTP 协议的最新版本和建议。
HTTP 协议是 Internet 上使用最多、最重要的协议。越来越多的Java应用需要通过HTTP协议直接访问网络资源。HttpClient 已经在很多项目中使用。例如,Apache Jakarta 上的另外两个著名的开源项目 Cactus 和 HTMLUnit,都使用 HttpClient。HttpClient 的最新版本是 HttpClient 4.2 (GA)。
HTML解析器
HTMLParser 是一个纯 java html 解析库。它不依赖于其他 java 库文件。它主要用于转换或提取html。是目前使用最广泛的html解析分析工具。最新版本的 htmlparser 现在是 2.0。HTMLParser 有两个主要功能:信息提取和信息转换。信息抽取功能包括五个子功能:
文本信息提取,如在HTML中搜索有效信息;链接提取,用于自动为页面的链接文本添加链接标签;资源提取,比如处理一些图片和声音资源;链接检查,用于检查HTML中的链接是否有效;页面内容监控。
信息转换功能包括五个子功能:链接重写,用于修改页面中的所有超链接;网页内容副本,用于将网页内容保存到本地;内容检查,可以用来过滤网页上的一些词;HTML信息清理,格式化HTML信息;转换为 XML 格式的数据。
IKAnalyzer 简介
IKAnalyzer是一款基于java语言开发的开源、轻量级的中文分词工具包。由于大部分开源软件来自国外,所以分词器对中文分词一般采用单字分词,分词效果不好。
开源项目作者林良义等人编写的IKAnalyzer应该是Lucene中文分词器中最好的之一,并且随着Lucene的版本不断更新,已经更新到2012版的IKAnalyzer。最初是一个中文分词组件,以开源项目Luence为主要应用,结合词典分词和语法分析算法。从3.0版本开始,IK已经发展成为Java通用的分词组件,独立于Lucene项目,同时提供了Lucene的默认优化实现。IKAnalyzer采用独特的“前向迭代细粒度分割算法”,具有每秒60万字符的高速处理能力。
英文字母(IP地址、Email、URL)、数字(日期、常用中文量词、罗马数字、科学记数法)、中文词汇(姓名、地名处理)等分词处理。
系统架构研究
系统设计与实现
该系统主要由两部分组成,一是信息捕获,二是热点分析。信息爬取可以根据科研人员的兴趣设计爬取源网站,并根据这些源网站的网页设计技术分析网站页面的组成结构,得到网站爬取模式;然后,使用HTMLParser和HttpClinet对网站进行信息爬取Fetch并存入数据库;最后,分析数据库中获取的期刊论文的相关信息,获取热点信息。系统工作流程如图1所示。
数据采集
本文使用Tomcat6.0作为服务器,JDK1.6MyEclipse10作为开发环境,使用HttpClinet实现数据采集。主要代码如图2所示。
将网址和网站编码方式传入getUrlContent即可获取网页源代码,可以通过HTMLParser解析网站源代码。本文以某网站为例,获取该期刊的最新文章信息,实现的关键代码如图3所示。
每个网站都需要分析其页面生成规则,然后通过AndFilter方法分析指定标签中的内容,然后将获取的文章标题存储到数据库中。根据实际需要,还可以采集
文章的作者和摘要。,本文仅以文章标题为例。
热点分析
研究人员可以根据自己关注的领域设立采集站点,通过上述方法完成原创
信息的采集,并存入数据库,再通过IKAnalyzer完成中文分词。本文可以通过引用开源jar包来实现文章标题。实现分词的关键代码如图4所示。
系统显示分词后的词,并计算该词在该加工信息中的出现频率。研究人员可以手动筛选识别,选择热词存储到热词数据库中,实现基于人工经验的热词分类。
这些热词将作为系统的知识积累。通过系统提供的热词检索功能,可以在系统采集
的论文中快速找到所有相关文章,从而分析当前论文的热点话题和频率。
信息推送
信息推送是指信息源主动向用户传递信息。信息服务公司根据用户的需要,按照一定的技术标准和协议,从互联网信息资源中自动选择用户感兴趣的数据,并定期推送到用户计算机上进行数据发布技术。本系统使用注册功能为科研人员定制信息。通过科研人员关注的信息,建立个人模型,包括用户的兴趣爱好、信息资源类别和学科。推送系统定期根据用户模型进行搜索,并通过邮件向用户推送相关信息。与用户自助在线搜索信息相比,
实例
本文假设科研人员开设了一本现代图书馆与信息技术杂志作为自己感兴趣的期刊,并选择以语义为热点,系统将定期采集
该杂志网站上发布的期刊目录,例如,系统采集
近期论文信息442项。这些数据存储在数据库中。经过热点分析,得到频率较高的词如下:语义、云、挖掘、提取、专利、知识库、识别、搜索引擎、opac、标签、模式、元、检索系统、认证、cssci、集合、民俗分类、生物医学、k-means、舆论、主题索引、爬行。系统会推送科研人员关注的语义相关论文列表,如图5所示。
结束语
本文完成了期刊论文信息的自动采集和热点分析。它完全基于开源架构。二次开发只需要对开源项目做适当的调整。本文给出了使用开源架构的关键代码。通过引入这些开源项目发布的jar包,利用本文公开的应用代码,可以完成信息采集
和热点分析。通过该系统,可以实现期刊或其他网络论文的信息采集、信息过滤、热词分析、热词检索、信息推送等功能,通过当前热点论文的变化跟踪他人的研究成果。另外,这个系统扩展后,