CN106959995A - 兼容双向自动化网页内容采集方法 - Google Patents
兼容双向自动化网页内容采集方法 Download PDFInfo
- Publication number
- CN106959995A CN106959995A CN201611192253.9A CN201611192253A CN106959995A CN 106959995 A CN106959995 A CN 106959995A CN 201611192253 A CN201611192253 A CN 201611192253A CN 106959995 A CN106959995 A CN 106959995A
- Authority
- CN
- China
- Prior art keywords
- data
- web page
- webpage
- ajax
- page contents
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了兼容双向自动化网页内容采集方法,它包括以下步骤,步骤1,配置网页信息采集任务;步骤2,解析网页数据;步骤3,采集信息的入库处理;本发明通过配置,自动的识别网页上的有效数据块,自动发现数据块的内容是通过全部网页刷新方式获取还是通过Ajax做局部数据刷新,如果是通过网页全部刷新,就按照一般的传统模式进行网页内容的采集,如果是通过Ajax局部数据刷新,就通过客户端自动执行该Ajax脚本,刷新数据后再提取有效的数据,从而达到数据全部采集的目的。
Description
技术领域
本发明涉及计算机网页内容采集技术领域,具体涉及一种兼容双向自动化网页内容采集方法。
背景技术
随着互联网技术的发展,网络数据以爆炸式的速度增长,如何从海量的数据中获取对自己有意义数据已经成为每个企业和公司关注的重点,这个就“信息中的信息”,目前网页内容采集主要有两种方式,第一种方式:基于网络爬虫的网页信息采集,这种方式的主要优势就是能通过链接不断的获取新的链接上的网页内容,通过网页抓取、网页数据抽取、内容分析等步骤,发现和找到有意义的数据,但是对不同领域、不同背景的用户往往具有不同的检索目的和需求,这种方式搜索采集到的结果包含大量用户不关心的网页,造成了大量的资源浪费;第二种方式,现在越来越多的企业和用户更多的关注自己垂直领域内的信息收集,因为这种信息的意义相比网络爬虫获取的信息更有价值,为了直接获取更有用的数据和减少数据处理步骤,他们开始只针对网页上的数据表格进行解析,从而直接把有效的数据收集到自己的数据库中,但是目前越来越多的网站为了提高整体网站的性能和用户的体验效果,采用的数据获取方式都从原来的整体网页刷新到局部数据表格的刷新,而通过传统工具,如JSoup,Web Parser,HTML Parser都只能做到对网页整体内容的解析,对于这种局部交互的网页内容获取就显得爱莫能助了。
发明内容
本发明克服了现有技术的不足,提供一种兼容双向自动化网页内容采集方法。
为解决上述的技术问题,本发明采用以下技术方案:
一种兼容双向自动化网页内容采集方法,它包括以下步骤:
步骤1,配置网页信息采集任务,在配置网页信息采集任务时定义四个关键要素,定义任务采集的入口地址和信息采集的分页策略,定义采集信息在HTML DOM树的位置,定义采集内容的数据映射表;
定义任务采集的入口地址和信息采集的分页策略,例如,电影天堂网站的入口地址为http://www.ygdy8.net/html/gndy/dyzz/list_23_1.html,该网站采用全部网页刷新的方式,定义该任务采集的链接为http://www.ygdy8.net/html/gndy/dyzz/list_23_{page}.html,采用的方式为Page,例如,http://data.10jqka.com.cn/market/xsjj/,定义采用的方式为Ajax,分页执行的方法为changePage({page})。
定义采集内容的数据映射表,因为收集的数据最后统一到数据库中都是标准数据库,所以需要把网页上不规则的数据字段映射成标准数据字段,如内容块的<td>标签或者<div>标签,需要定义总共的Number和第几个<td>或者<div>的字段映射关系,如<td>1对应日期,<td>2对应标题,具体见下表:
内容序号 | 配置字段 | 说明 |
1 | time | 第一个td对应数据库中的时间字段 |
2 | title | 第二个td对应数据库中的标题字段 |
3 | content | 第三个td对应数据库中的内容字段 |
4 | actor | 第四个td对应数据库中的导演字段 |
5 | other | 第五个td对应数据库中的其他信息字段 |
7 | pic | 第六个td对应数据库中的图片地址字段,过滤到第6个人字段 |
步骤2,解析网页数据,通过Jsoup打开任务采集的入口地址,开始解析该网页内容,通过配置的数据块位置,让Jsoup获取该位置下的所有内容,并参照数据映射表中的映射关系一一解析网页内容中的数据字段,当该入口地址的信息解析完成后,开始查找该网页采集任务的分页策略,如果分页策略为page,采集链接中的{Page}参数替换为真实的页数,再通过JSoup获取下一页的网页内容;如果分页策略为Ajax,通过Java Web Client执行配置中的Ajax脚本,把Ajax的{Page}参数替换为真实的页数,再通过JSoup获取下一页的网页内容;
步骤3,采集信息的入库处理,通过Jsoup把采集到的标准数据存入数据库。
由于现有技术中第二种方式,网页内容提取的方式主要通过现有工具把整个网页内容全部获取下来,在通过解析网页内容DOM树获取我们希望获取的网页内容,如:www.baidu.com,我们想获取百度下面广告图片的具体名字,我们会通过工具,如JSoup打开www.baidu.com,获取返回的HTMLDOM树,再找到网页广告部分的网页位置,对这部分数据进行解析,获取广告内容名字,这种方式存在两个较大的问题,问题一:在获取网页内容的过程中,需要人工参与和分析的工作比较多,如,广告内容部分在网页HTML DOM树中位置,还有就是在该位置下,那个DIV或者TD的内容属于广告名字那个是广告的链接;问题二:百度广告位的内容采用的是分页的形式,在浏览器上用户可以通过点击左箭头和右箭头获取上一页和下一页的广告内容,通过局部刷新网页的DOM树呈现新的内容,这种方式也是目前越来越多的网站展现数据的方式了,如果我们再通过现有的工具,就不能实现上一页和下一页广告内容的获取,所以本技术方案中通过配置生成定时任务工作,去解析需要采集信息的网站,在定时任务中,会知道该网站内容获取方式,是传统的全部网页刷新实现还是局部网页刷新实现。如果是全部网页刷新,通过JSoup直接获获取全部网页内容,然后从定时工作配置信息中找到数据块的位置和找到工作中关于数据块字段的映射属性,如第一个<div>或者<td>映射成广告链接,第二个<div>或者<td>映射成广告名称,完成数据的解析;如果是局部网页刷新,需要从定时任务配置信息中获取局部网页刷新数据需要执行的Ajax方法,通过实现Java Web Client调用Ajax方法进行到网页局部内容刷新,再重复JSoup获取网页内容的工作,最后完成数据的解析。
与现有技术相比,本发明的有益效果是:
本发明通过配置,自动的识别网页上的有效数据块,自动发现数据块的内容是通过全部网页刷新方式获取还是通过Ajax做局部数据刷新,如果是通过网页全部刷新,就按照一般的传统模式进行网页内容的采集,如果是通过Ajax局部数据刷新,就通过客户端自动执行该Ajax脚本,刷新数据后再提取有效的数据,从而达到数据全部采集的目的。
附图说明
图1为本发明一种实施例的兼容双向自动化网页内容采集方法的流程图。
具体实施方式
下面结合附图对本发明作进一步阐述。
实施例1
步骤1,通过Web工程定义网页信息采集任务,定义Class CollectTask(收集任务),包含字段String entrenceURL(入口地址),Enum contentFlag(获得内容块的方式,Xpath,Class或者Id),String contentLocation(内容块数据位置,可以为Xpath或者唯一标示class和id),Enum pageStrategy(分页策略,Page还是Ajax),String pageURL(分页执行的链接或者Ajax调用的方法);定义:List Class TaskItem(收集内容字段定义,一个任务包含了多个收集的内容字段),String itemFlag(对应网页中的元素,如td或者div),String Number(网页内容总共有多少个内容项),Map<String,String>items(每个内容项对应的我们数据库中的字段),如items.put(“1”,“title”),items.put(“2,“content”);
步骤2,通过Spring Scheduler Trigger触发网页信息收集任务,本实施例采用的每日凌晨1点执行一次0 0 1**?,配置文件如下:
步骤3,网页信息采集任务执行;
通过JSoup打开CollectTask信息中的入口地址Connection connect=Jsoup.connect(url);Document document=connect.get();
通过JSoup定位到内容数据模块Elements trs=tBody.getElementsByTag("id_flag");Elementstrs=tBody.getElementsByClass("class_flag");
通过映射文件,解析数据块的内容,获取数据
执行Ajax脚本进行分页数据加载
WebClient wc=new WebClient();
wc.getOptions().setJavaScriptEnabled(true);//启用JS解释器,默认为true
wc.getOptions().setCssEnabled(false);//禁用css支持
HtmlPage page=wc.getPage(url);
page.executeJavaScript("changePage(‘2’)");
步骤4,把解析到的梳理存取到数据库中,通过Web系统进行浏览和统计。
以上具体实施方式对本发明的实质进行详细说明,但并不能对本发明的保护范围进行限制,显而易见地,在本发明的启示下,本技术领域普通技术人员还可以进行许多改进和修饰,需要注意的是,这些改进和修饰都落在本发明的权利要求保护范围之内。
Claims (4)
1.一种兼容双向自动化网页内容采集方法,其特征在于,它包括以下步骤:
步骤1,配置网页信息采集任务,在配置网页信息采集任务时定义四个关键要素,定义任务采集的入口地址和信息采集的分页策略,定义采集信息在HTML DOM树的位置,定义采集内容的数据映射表;
步骤2,解析网页数据,通过Jsoup打开任务采集的入口地址,开始解析该网页内容,通过配置的数据块位置,让Jsoup获取该位置下的所有内容,并参照数据映射表中的映射关系一一解析网页内容中的数据字段,当该入口地址的信息解析完成后,开始查找该网页采集任务的分页策略,如果分页策略为page,采集链接中的{Page}参数替换为真实的页数,再通过JSoup获取下一页的网页内容;如果分页策略为Ajax,通过Java Web Client执行配置中的Ajax脚本,把Ajax的{Page}参数替换为真实的页数,再通过JSoup获取下一页的网页内容;
步骤3,采集信息的入库处理,通过Jsoup把采集到的标准数据存入数据库。
2.根据权利要求1所述的兼容双向自动化网页内容采集方法,其特征在于,所述定义信息采集的分页策略,分页策略为Page或Ajax。
3.根据权利要求1所述的兼容双向自动化网页内容采集方法,其特征在于,所述定义采集内容的数据映射表为把网页上不规则的数据字段映射成标准数据字段。。
4.根据权利要求1所述的兼容双向自动化网页内容采集方法,其特征在于,所述数据库为MongoDB数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611192253.9A CN106959995A (zh) | 2016-12-21 | 2016-12-21 | 兼容双向自动化网页内容采集方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611192253.9A CN106959995A (zh) | 2016-12-21 | 2016-12-21 | 兼容双向自动化网页内容采集方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106959995A true CN106959995A (zh) | 2017-07-18 |
Family
ID=59480925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611192253.9A Pending CN106959995A (zh) | 2016-12-21 | 2016-12-21 | 兼容双向自动化网页内容采集方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106959995A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108959539A (zh) * | 2018-06-30 | 2018-12-07 | 成都信息工程大学 | 一种基于规则可配置的网页数据解析方法 |
CN110069682A (zh) * | 2017-09-14 | 2019-07-30 | 长沙博为软件技术股份有限公司 | 一种互联网网页采集方法 |
CN110390558A (zh) * | 2019-06-19 | 2019-10-29 | 平安银行股份有限公司 | 图片自动检核方法、装置、终端及可读存储介质 |
WO2021088350A1 (zh) * | 2019-11-07 | 2021-05-14 | 南京莱斯网信技术研究院有限公司 | 一种基于脚本的web服务分页数据采集系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060041827A1 (en) * | 2004-08-17 | 2006-02-23 | Fujitsu Limited | Page information collection program, page information collection method, and page information collection apparatus |
CN101515300A (zh) * | 2009-04-02 | 2009-08-26 | 阿里巴巴集团控股有限公司 | 一种Ajax网页内容的抓取方法及系统 |
CN104111836A (zh) * | 2014-07-14 | 2014-10-22 | 浪潮软件集团有限公司 | 一种网络采集处理异步加载数据的方法 |
CN104750812A (zh) * | 2015-03-30 | 2015-07-01 | 浪潮集团有限公司 | 一种基于网页标签分析的数据自动采集方法 |
-
2016
- 2016-12-21 CN CN201611192253.9A patent/CN106959995A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060041827A1 (en) * | 2004-08-17 | 2006-02-23 | Fujitsu Limited | Page information collection program, page information collection method, and page information collection apparatus |
CN101515300A (zh) * | 2009-04-02 | 2009-08-26 | 阿里巴巴集团控股有限公司 | 一种Ajax网页内容的抓取方法及系统 |
CN104111836A (zh) * | 2014-07-14 | 2014-10-22 | 浪潮软件集团有限公司 | 一种网络采集处理异步加载数据的方法 |
CN104750812A (zh) * | 2015-03-30 | 2015-07-01 | 浪潮集团有限公司 | 一种基于网页标签分析的数据自动采集方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110069682A (zh) * | 2017-09-14 | 2019-07-30 | 长沙博为软件技术股份有限公司 | 一种互联网网页采集方法 |
CN108959539A (zh) * | 2018-06-30 | 2018-12-07 | 成都信息工程大学 | 一种基于规则可配置的网页数据解析方法 |
CN108959539B (zh) * | 2018-06-30 | 2021-09-21 | 成都信息工程大学 | 一种基于规则可配置的网页数据解析方法 |
CN110390558A (zh) * | 2019-06-19 | 2019-10-29 | 平安银行股份有限公司 | 图片自动检核方法、装置、终端及可读存储介质 |
WO2021088350A1 (zh) * | 2019-11-07 | 2021-05-14 | 南京莱斯网信技术研究院有限公司 | 一种基于脚本的web服务分页数据采集系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109033358B (zh) | 新闻聚合与智能实体关联的方法 | |
US8060538B2 (en) | Method and system for creating a concept-object database | |
JP5501373B2 (ja) | 複数のウェブサイトからデータを収集及びランク付けするためのシステム及び方法 | |
CN106126648B (zh) | 一种基于重做日志的分布式商品信息爬虫方法 | |
US8010544B2 (en) | Inverted indices in information extraction to improve records extracted per annotation | |
CN100440224C (zh) | 一种搜索引擎性能评价的自动化处理方法 | |
Punin et al. | LOGML: Log markup language for web usage mining | |
CN102073726B (zh) | 搜索引擎系统的结构化数据的引入方法和装置 | |
CN102156737B (zh) | 一种中文网页主题内容的提取方法 | |
Punin et al. | Web usage mining—Languages and algorithms | |
US20080077582A1 (en) | System and method of ad-hoc analysis of data | |
CN104391978B (zh) | 用于浏览器的网页收藏处理方法及装置 | |
US20070198727A1 (en) | Method, apparatus and system for extracting field-specific structured data from the web using sample | |
CN106959995A (zh) | 兼容双向自动化网页内容采集方法 | |
CN104516982A (zh) | 一种基于Nutch的Web信息提取方法和系统 | |
CN103530429B (zh) | 一种网页正文抽取的方法 | |
CN101576891A (zh) | 一种解析网页表格对象节点的方法 | |
US20160103913A1 (en) | Method and system for calculating a degree of linkage for webpages | |
CN102253939A (zh) | 一种基于云计算技术的搜索方法及系统 | |
CN102968510B (zh) | 互联网人物信息的搜索方法及系统 | |
KR20170115109A (ko) | 효율적 건설문서 관리를 위한 텍스트마이닝 적용 기술 | |
JP2006277732A (ja) | データベースのクローリングによる情報検索 | |
CN104281629A (zh) | 从网页中提取图片的方法、装置及客户端设备 | |
CN109165264A (zh) | 一种基于多样化热力图的网页分析方法及装置 | |
Tang et al. | Regular expression-based reference metadata extraction from the web |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170718 |
|
RJ01 | Rejection of invention patent application after publication |