自动采集推送(JDK的javanet包提供的HttpURLConnection技术,你了解多少?)
优采云 发布时间: 2021-10-31 09:15自动采集推送(JDK的javanet包提供的HttpURLConnection技术,你了解多少?)
JDK的java net包提供的HttpURLConnection技术,早期很多应用系统都是通过这个jar包采集来实现数据的,但是对于大多数应用来说,JDK库本身提供的功能还不够丰富和灵活。近年来,科研应用开发者热衷于HttpClient技术来实现数据采集。HttpClient 是 ApacheJakarta Common 下的一个子项目,可用于提供高效、最新、功能丰富的支持 HTTP 协议的客户端编程工具包,可以支持 HTTP 协议的最新版本和建议。
HTTP协议是互联网上使用最多、最重要的协议,越来越多的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捕获网站的信息并存入数据库;最后,对数据库中抓取的期刊论文相关信息进行分析,获取热点信息,系统工作流程如图1所示。
数据采集
本文使用Tomcat6.0作为服务器,JDK1.6MyEclipse10作为开发环境,数据采集使用HttpClinet实现。主要代码如图2所示。
将网站地址和网站编码方式传入getUrlContent即可获取网页源代码。网站的源码可以通过HTMLParser解析。本文以一个网站为例,获取该期刊最新的文章信息,实现的关键代码如图3所示。
每个网站都需要分析它的页面产生规则,然后通过AndFilter方法解析指定标签的内容,然后将得到的文章标题存入数据库。根据实际需要,还可以存储文章的作者和摘要也是采集。本文仅以采集文章的标题为例。
热点分析
研究人员可以根据自己关注的领域建立采集站点,通过上述方法完成原创信息采集,并存入数据库,然后通过IKAnalyzer完成中文分词。本文通过引用开源jar包的方式可以实现文章标题的分词,实现的关键代码如图4所示。
系统显示分词后的词,并计算该词在该加工信息中的出现频率。研究人员可以人工筛选识别,选择热词存储到热词数据库中,实现基于人工经验的热词分类。
这些热词将作为系统的知识积累。通过系统提供的热词检索功能,可以在系统采集的论文中快速找到所有相关的文章,从而分析论文当前的热点话题和出现频率。
信息推送
信息推送是指信息源主动向用户传递信息。是信息服务公司根据用户的需要,按照一定的技术标准和协议,从互联网信息资源中自动选择用户感兴趣的数据,并定期推送到用户计算机上的数据发布技术。系统使用注册功能为科研人员定制信息。通过科研人员关注的信息,建立个人模型,包括用户兴趣、信息资源类别、学科等。推送系统根据用户模型定期搜索,通过邮件向用户推送相关信息。与用户相比
实例
本文假设某科研人员开设了一本现代图书馆与信息技术杂志作为自己感兴趣的期刊,并选择以语义为重点,那么系统会定期在期刊采集该期刊上发布期刊目录网站,例如采集系统,近年来有442条纸质信息。数据存储在数据库中。经过热点分析,得到频率较高的词如下:语义、云、挖掘、提取、专利、知识库、识别、搜索引擎、opac、标签、模式、元、搜索系统、认证、cssci、采集、民俗学、生物医学、k-means、舆论、主题索引、爬行。系统会推送科研人员关注的语义相关论文列表,
结束语
本文完成了期刊论文信息的自动采集分析和热点分析,完全基于开源架构。二次开发只需要对开源项目进行适当的调整。本文给出了使用开源架构的关键代码。通过介绍这些开源项目发布的jar包,利用本文公开的应用代码,可以完成信息采集和热点分析。通过该系统,可以实现期刊或其他在线论文的信息采集、信息过滤、热词分析、热词搜索、信息推送等功能,并通过变化跟踪他人的研究成果。当前热门论文。另外,这个系统扩展后,