CN104142985B - 一种半自动化的垂直爬虫生成工具及方法 - Google Patents

一种半自动化的垂直爬虫生成工具及方法 Download PDF

Info

Publication number
CN104142985B
CN104142985B CN201410352349.1A CN201410352349A CN104142985B CN 104142985 B CN104142985 B CN 104142985B CN 201410352349 A CN201410352349 A CN 201410352349A CN 104142985 B CN104142985 B CN 104142985B
Authority
CN
China
Prior art keywords
template
content
reptile
user
xpath
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.)
Active
Application number
CN201410352349.1A
Other languages
English (en)
Other versions
CN104142985A (zh
Inventor
魏玉良
王佰玲
吕芳
陈新蕾
黄俊恒
刘扬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Weihai Tian Wei Network Space Safety Technology Co., Ltd.
Original Assignee
Harbin Institute of Technology Weihai
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Harbin Institute of Technology Weihai filed Critical Harbin Institute of Technology Weihai
Priority to CN201410352349.1A priority Critical patent/CN104142985B/zh
Publication of CN104142985A publication Critical patent/CN104142985A/zh
Application granted granted Critical
Publication of CN104142985B publication Critical patent/CN104142985B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Abstract

本发明公开了一种半自动化的垂直爬虫生成工具及方法,该半自动化的垂直爬虫生成方法包括:用户可以选择新建或采用lex‑yacc技术打开模板,对模板文件进行词法与语法分析,维护符号表,构造出语法分析树;通过寻找词法与语法分析的规律,以及对整个分析过程中数据的存储与处理,根据模板内容构造出树形模板结构;根据要抽取的内容,在树形模板结构中增加、修改或删除模板节点,节点信息中包含跳转关系、XPath表达式、数据存储方式内容;保存模板;该半自动化的垂直爬虫生成工具包括:爬虫自动生成工具模块、爬虫模块。本发明由自动生成模板内容代替人工手动配置模板,使配置模板变得更加方便快捷,可以大大节省相关人员的工作量。

Description

一种半自动化的垂直爬虫生成工具及方法
技术领域
本发明属于搜索引擎技术领域,尤其涉及一种半自动化的垂直爬虫生成工具及方法。
背景技术
随着搜索引擎技术的发展,服务于特定领域的垂直搜索应用开始兴起。垂直爬虫可以根据特定的目标,有选择性的访问互联网页面的目标链接,获取页面信息。它不追求大而广的覆盖,只专注于某个领域或某个行业,根据搜索引擎索引策略从url队列中选择下一步抓取的页面。虽然垂直爬虫与批量爬虫、增量爬虫相比,有着精准度更高等优点,但垂直爬虫仍需人工手动干预爬虫模板的配置,这也是由垂直爬虫的特点所决定的。
人工配置模板的效率主要受这几处影响:分析网页及其源代码并找到所需位置的html代码;根据html代码编写XPath表达式;人工撰写模板代码,难免出现括号不匹配等语法错误;无法直观检查模板的内容。这也对模板配置者理解html代码、XPath表达式、Python语法(模板使用Python语法)的能力提出了要求。而此发明解决了这些问题,模板配置者只需要了解模板的构造、需要爬取的内容,便可以成功配置模板。
发明内容
本发明实施例的目的在于提供一种半自动化的垂直爬虫生成工具及方法,旨在解决现有垂直爬虫存在的需人工手动干预爬虫模板配置存在的容易出现语法错误,无法直观检查模板内容和工作效率低的问题。
本发明实施例是这样实现的,一种半自动化的垂直爬虫生成方法,该半自动化的垂直爬虫生成方法包括以下步骤:
步骤一,用户可以选择新建或采用lex-yacc技术打开模板,对模板文件进行词法与语法分析,维护符号表,构造出语法分析树;通过寻找词法与语法分析的规律,以及对整个分析过程中数据的存储与处理,根据模板内容构造出树形模板结构;
步骤二,根据要抽取的内容,在树形模板结构中增加、修改或删除模板节点,节点信息中包含跳转关系、XPath表达式、数据存储方式内容;
步骤三,保存模板,自动替用户生成语法与格式均正确的模板文件,用户选择直接开始爬取信息;如果用户模板配置正确,系统会根据树形模板结构生成语法正确的模板文件,若配置不正确,系统会提示用户需要修改的地方。
进一步,在步骤二中获取XPath表达式的方法包括:
使用lxml库提供的与XPath相关的接口,传入XPath表达式参数,获取XPath对应的页面上的信息;用户在页面上点击某项信息之后,对应的HTML标签会直接显示在HTML元素节点查看器中,同时XPath编辑器显示此元素对应的XPath表达式;HTML元素具有文本内容以及至少一个属性,选择所抽取的是属性还是文本内容;当用户确定XPath表达式之后,便通过抽取内容选择器选择所需要抽取的内容,得到了完整的XPath表达式。
本发明实施例的另一目的在于提供一种半自动化的垂直爬虫生成工具,该半自动化的垂直爬虫生成工具包括:爬虫自动生成工具模块、爬虫模块;
爬虫自动生成工具模块,用于实现用户选择新建或采用lex-yacc打开模板,对模板文件进行词法与语法分析,维护符号表,构造出语法分析树,通过寻找词法与语法分析的规律,以及对整个分析过程中数据的存储与处理,根据模板内容构造出树形模板结构;
爬虫模块,与爬虫自动生成工具模块连接,用于根据爬虫自动生成工具模块提供的树形模板,获取爬虫信息。
本发明提供的半自动化的垂直爬虫生成工具及方法,设置爬虫自动生成工具模块,用户可以选择新建或打开模板,采用lex-yacc技术打开模板,对模板文件进行词法与语法分析,维护符号表,构造出语法分析树;半自动化的垂直爬虫模板生成工具可以由系统自动生成模板内容代替人工手动配置模板,使配置模板变得更加方便快捷。本发明的爬虫使用者只需要初步了解XPath语法,甚至不需接触过XPath,只需点击鼠标、敲击少量的键盘即可配置并使用爬虫,可以大大节省相关人员的工作量。
附图说明
图1是本发明实施例提供的半自动化的垂直爬虫生成工具的结构示意图;
图中:1、爬虫自动生成工具模块;2、爬虫模块;
图2是本发明实施例提供的半自动化的垂直爬虫生成方法的流程图;
图3是本发明实施例提供的半自动化的垂直爬虫生成方法的整体流程示意图;
图4是本发明实施例提供的半自动化的垂直爬虫生成方法的确定XPath表达式的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
下面结合附图及具体实施例对本发明的应用原理作进一步描述。
如图1所示,本发明实施例的半自动化的垂直爬虫生成工具主要由:爬虫自动生成工具模块1、爬虫模块2;
爬虫自动生成工具模块1,用于实现用户选择新建或采用lex-yacc技术打开模板,对模板文件进行词法与语法分析,维护符号表,构造出语法分析树,通过寻找词法与语法分析的规律,以及对整个分析过程中数据的存储与处理,根据模板内容构造出树形模板结构;
爬虫模块2,与爬虫自动生成工具模块1连接,用于根据爬虫自动生成工具模块1提供的树形模板,获取爬虫信息。
如图2所示,本发明实施例的半自动化的垂直爬虫生成方法包括以下步骤:
S201:用户可以选择新建或采用lex-yacc技术打开模板,对模板文件进行词法与语法分析,维护符号表,构造出语法分析树;通过寻找词法与语法分析的规律,以及对整个分析过程中数据的存储与处理,根据模板内容构造出树形模板结构;
S202:根据要抽取的内容,在树形模板结构中增加、修改或删除模板节点,节点信息中包含跳转关系、XPath表达式、数据存储方式等内容;
S203:保存模板,自动替用户生成语法与格式均正确的模板文件,用户可以选择直接开始爬取信息;如果用户模板配置正确,系统会根据树形模板结构生成语法正确的模板文件,若配置不正确,系统会提示用户需要修改的地方。
在步骤S202中,Python的lxml库支持XPath,可以使用lxml库提供的与XPath相关的接口,传入XPath表达式参数,精准地获取此XPath对应的页面上的信息;用户在页面上点击某项信息之后,对应的HTML标签会直接显示在HTML元素节点查看器中,同时XPath编辑器显示此元素对应的XPath表达式;反之,若用户点击了HTML元素节点查看器中的某个元素,浏览器中对应的位置会高亮;若用户有XPath基础,则可以对XPath编辑器中的XPath表达式进行编辑,对应的内容在浏览器中会被高亮;HTML元素具有文本内容以及至少一个属性(例如<a>标签的href属性),需要选择所抽取的是属性还是文本内容;当用户确定好XPath表达式之后,便可以通过抽取内容选择器选择所需要抽取的内容,就得到了完整的XPath表达式。
如图3所示,本发明实施例的半自动化的垂直爬虫生成方法包括以下步骤:
步骤一,用户可以选择新建或打开模板;模板的打开采用了lex-yacc技术,可以对模板文件进行词法与语法分析,维护符号表,构造出语法分析树;在此基础上,通过寻找词法与语法分析的规律,以及对整个分析过程中数据的存储与处理,便可根据模板内容构造出树形模板结构;此过程要求已有的模板文件语法内容以及模板格式正确;
步骤二,根据要抽取的内容,在树形模板结构中增加、修改或删除模板节点,节点信息中包含跳转关系、XPath表达式、数据存储方式等内容;此部分的重点在于XPath表达式的确定;在垂直爬虫中,XPath表达式具有十分重要的用途,它能精准地定位网页的任意一个位置;Python的lxml库支持XPath,可以使用lxml库提供的与XPath相关的接口,传入XPath表达式参数,精准地获取此XPath对应的页面上的信息;所以在配置模板的过程中,XPath表达式的确定是一项非常重要的环节;用户界面各部分的交互如下图4:
如图4所示,页面可以在浏览器中打开,页面源代码会显示在源代码查看器中供用户参考并支持关键字的搜索;用户在页面上点击某项信息之后,对应的HTML标签会直接显示在HTML元素节点查看器中(与Google的审查元素功能类似),同时XPath编辑器显示此元素对应的XPath表达式;反之,若用户点击了HTML元素节点查看器中的某个元素,浏览器中对应的位置会高亮;若用户有XPath基础,则可以对XPath编辑器中的XPath表达式进行编辑,对应的内容在浏览器中会被高亮;此工具为无XPath基础的模板配置者提供了一些功能按钮,用户可以扩大、缩小、前移、后移选取范围;
大多数HTML元素具有文本内容以及至少一个属性(例如<a>标签的href属性),需要选择所抽取的是属性还是文本内容;当用户确定好XPath表达式之后,便可以通过抽取内容选择器选择所需要抽取的内容,这样就得到了完整的XPath表达式;
步骤三,保存模板,此工具会自动替用户生成语法与格式均正确的模板文件,用户可以选择直接开始爬取信息;如果用户模板配置正确,系统会根据树形模板结构生成语法正确的模板文件,若配置不正确,系统会提示用户需要修改的地方。
通过以下的具体实施例对本发明的应用效果做进一步的说明:
在此举出一个生成XPath表达式的过程作为实例,假设抽取搜狐时事新闻列表的标题:
在浏览器中点击任一标题,可以看到系统自动生成了相应的XPath表达式,并且定位到了相应的元素节点;通过页面中的高亮可以确定这些标题就是需要抽取的内容,接下来需要在右侧的抽取内容中选择一项,需要的是文本内容,故选择最后一项;然后在树形模板结构中添加节点信息,XPath表达式会显示在添加界面上;
生成的XPath表达式会应用到垂直爬虫中;在使用lxml解析页面HTML代码后将XPath表达式传入根据XPath获取信息的方法,便可以得到所需的数据;在本例中抽取标题内容和标题URL,则它们的XPath表达式内容分别为//*[@class=”f14list”]/ul/li/a/text()与//*[@class=”f14list”]/ul/li/a/@href。
发明可以将配置垂直爬虫模板的过程进行半自动化,可以省去模板配置者自己查看网页源码、确定XPath表达式、手写模板代码的工作;通过使用本发明,模板配置者可以直观地获取网页信息并通过简单的点击获取XPath表达式,在树形控件中构造节点并编辑节点信息,得到系统根据模板配置者所输入的信息构造的模板,并可直接由爬虫模块使用;
本发明主要与垂直爬虫工具配套使用,可以服务于旅游、购物、医药等行业的专业领域,比如使用垂直爬虫对各大购物网站的某一类别商品进行基于结构化数据和元数据共同实现此专业领域的信息爬取,并提供多个网站的信息供用户进行质量、价格等因素的对比;当今垂直爬虫在信息深度方面有着非常大的优势,若它能搭配垂直爬虫模板生成工具使用,效率会得到更大地提升;故此半自动化的垂直爬虫模板生成工具有着广泛的应用前景;
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (2)

1.一种半自动化的垂直爬虫生成方法,其特征在于,该半自动化的垂直爬虫生成方法包括以下步骤:
步骤一,用户选择新建或采用lex-yacc技术打开模板,对模板文件进行词法与语法分析,维护符号表,构造出语法分析树;通过寻找词法与语法分析的规律,以及对整个分析过程中数据的存储与处理,根据模板内容构造出树形模板结构;
步骤二,根据要抽取的内容,在树形模板结构中增加、修改或删除模板节点,节点信息中包含跳转关系、XPath表达式、数据存储方式内容,XPath表达式的确定由用户通过点击操作来完成,无需手工撰写XPath表达式;
步骤三,保存模板,自动替用户生成语法与格式均正确的模板文件,用户选择直接开始爬取信息;如果用户模板配置正确,系统根据树形模板结构生成语法正确的模板文件,若配置不正确,系统提示用户需要修改的地方。
2.如权利要求1所述的半自动化的垂直爬虫生成方法,其特征在于,在步骤二中确定XPath表达式的方法包括:
使用lxml库提供的与XPath相关的接口,传入XPath表达式参数,获取XPath对应的页面上的信息;响应于用户对在页面上信息的点击,对应的HTML标签会直接显示在HTML元素节点查看器中,同时XPath编辑器显示此元素对应的XPath表达式;HTML元素具有文本内容以及至少一个属性,选择所抽取的是属性还是文本内容;当用户确定XPath表达式之后,便通过抽取内容选择器选择所需要抽取的内容,得到了完整的XPath表达式。
CN201410352349.1A 2014-07-23 2014-07-23 一种半自动化的垂直爬虫生成工具及方法 Active CN104142985B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410352349.1A CN104142985B (zh) 2014-07-23 2014-07-23 一种半自动化的垂直爬虫生成工具及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410352349.1A CN104142985B (zh) 2014-07-23 2014-07-23 一种半自动化的垂直爬虫生成工具及方法

Publications (2)

Publication Number Publication Date
CN104142985A CN104142985A (zh) 2014-11-12
CN104142985B true CN104142985B (zh) 2018-02-06

Family

ID=51852159

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410352349.1A Active CN104142985B (zh) 2014-07-23 2014-07-23 一种半自动化的垂直爬虫生成工具及方法

Country Status (1)

Country Link
CN (1) CN104142985B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106021257B (zh) * 2015-12-31 2019-10-18 广州华多网络科技有限公司 一种支持在线编程的爬虫抓取数据方法、装置及系统
CN105681290B (zh) * 2016-01-08 2018-11-02 北京京东尚科信息技术有限公司 一种自动过滤网络运营商嵌入http响应内容的方法和装置
CN107092670A (zh) * 2017-04-11 2017-08-25 武汉大学 一种基于内嵌浏览器的可视化网络爬虫系统及分析方法
CN107391775A (zh) * 2017-08-28 2017-11-24 湖北省楚天云有限公司 一种通用的网络爬虫模型实现方法及系统
CN107609150A (zh) * 2017-08-28 2018-01-19 湖北省楚天云有限公司 一种基于页面元素选取的交互式网络爬虫创建方法及系统
CN107943838B (zh) * 2017-10-30 2021-09-07 北京大数元科技发展有限公司 一种自动获取xpath生成爬虫脚本的方法及系统
CN110276039B (zh) * 2019-06-27 2021-09-28 北京金山安全软件有限公司 页面元素的路径生成方法、装置和电子设备
CN110955414A (zh) * 2019-11-29 2020-04-03 电子科技大学 自定义数据采集系统及方法
CN112347331B (zh) * 2020-11-11 2022-07-12 福建有度网络安全技术有限公司 一种js敏感信息泄露检测方法、装置、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073730A (zh) * 2011-01-14 2011-05-25 哈尔滨工程大学 一种主题网络爬虫系统的构建方法
US8126868B1 (en) * 2008-10-22 2012-02-28 Amazon Technologies, Inc. Search rankings with dynamically customized content
CN103514189A (zh) * 2012-06-25 2014-01-15 上海博腾信息科技有限公司 一种基于搜索引擎的网络爬虫的实现方法
CN103605764A (zh) * 2013-11-26 2014-02-26 Tcl集团股份有限公司 一种网络爬虫系统及网络爬虫多任务执行和调度方法
CN103761330A (zh) * 2014-02-10 2014-04-30 赛特斯信息科技股份有限公司 基于模版配置实现互联网信息自动提取的系统及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8126868B1 (en) * 2008-10-22 2012-02-28 Amazon Technologies, Inc. Search rankings with dynamically customized content
CN102073730A (zh) * 2011-01-14 2011-05-25 哈尔滨工程大学 一种主题网络爬虫系统的构建方法
CN103514189A (zh) * 2012-06-25 2014-01-15 上海博腾信息科技有限公司 一种基于搜索引擎的网络爬虫的实现方法
CN103605764A (zh) * 2013-11-26 2014-02-26 Tcl集团股份有限公司 一种网络爬虫系统及网络爬虫多任务执行和调度方法
CN103761330A (zh) * 2014-02-10 2014-04-30 赛特斯信息科技股份有限公司 基于模版配置实现互联网信息自动提取的系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于Web的信息抽取技术研究;王旭东;《中国优秀硕士学位论文全文数据库 信息科技辑》;20090115(第1期);第29-48、57-59页 *

Also Published As

Publication number Publication date
CN104142985A (zh) 2014-11-12

Similar Documents

Publication Publication Date Title
CN104142985B (zh) 一种半自动化的垂直爬虫生成工具及方法
US11294968B2 (en) Combining website characteristics in an automatically generated website
US20190243880A1 (en) Method and system for providing suggested tags associated with a target web page for manipulation by a useroptimal rendering engine
Tuchinda et al. Building mashups by example
CN104111918B (zh) 网页内容的无障碍处理方法和无障碍网页装置
CN101984434B (zh) 基于可扩展标记语言查询的网页数据抽取方法
US20150067476A1 (en) Title and body extraction from web page
Zheng et al. Template-independent news extraction based on visual consistency
CN102651055A (zh) 一种基于医学影像的文件生成方法及系统
US20170109442A1 (en) Customizing a website string content specific to an industry
US20200026802A1 (en) Image quality independent searching of screenshots of web content
Fayzrahmanov et al. A unified ontology-based web page model for improving accessibility
US20100211562A1 (en) Multi-part record searches
KR101802051B1 (ko) 자연 언어 처리 스키마 및 그 지식 데이터베이스 구축 방법 및 시스템
KR100522186B1 (ko) 동적으로 홈페이지를 제작하는 방법 및 이 방법을 웹에서구현하는 장치
Meng et al. Data extraction from the web based on pre-defined schema
KR20100104982A (ko) 부분 매칭을 이용한 웹 페이지의 데이터 추출 방법 및 그 기록매체
KR101072147B1 (ko) 블로그 포스트를 온톨로지 기반 정보로 변환하는 방법 및 그 시스템
Yu et al. A novel method for extracting entity data from Deep Web precisely
CN110147477A (zh) Web系统的数据资源模型化提取方法、装置以及设备
JP5068356B2 (ja) ブログ本文特定装置及びブログ本文特定方法
CN110618809B (zh) 一种前端网页输入约束提取方法和装置
Rasool et al. Referencing Qur'an Verses and Ahadith on World Wide Web Using Microdata
Surla Eclipse editor for MARC records
TWI423053B (zh) Domain Interpretation Data Retrieval Method and Its System

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Wei Yuliang

Inventor after: Wang Bailing

Inventor after: Lv Fang

Inventor after: Chen Xinlei

Inventor after: Huang Junheng

Inventor after: Liu Yang

Inventor before: Chen Xinlei

Inventor before: Lv Fang

Inventor before: Wei Yuliang

Inventor before: Liu Yang

Inventor before: Huang Junheng

Inventor before: Wang Bailing

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20181009

Address after: 264200 Room 501, Beihai building, Sun Jia Tuan office, Huancui District, Weihai, Shandong

Patentee after: Weihai Tian Wei Network Space Safety Technology Co., Ltd.

Address before: 264209 No. 2 Cultural West Road, Weihai, Shandong

Patentee before: Harbin Institute of Technology (Weihai)