CN113656674A - 关于网站爬虫中点击类型超链接的自动化处理方法及装置 - Google Patents

关于网站爬虫中点击类型超链接的自动化处理方法及装置 Download PDF

Info

Publication number
CN113656674A
CN113656674A CN202111018080.XA CN202111018080A CN113656674A CN 113656674 A CN113656674 A CN 113656674A CN 202111018080 A CN202111018080 A CN 202111018080A CN 113656674 A CN113656674 A CN 113656674A
Authority
CN
China
Prior art keywords
page
module
executing
browser
hyperlink
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.)
Granted
Application number
CN202111018080.XA
Other languages
English (en)
Other versions
CN113656674B (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.)
Valley Network Polytron Technologies Inc
Original Assignee
Valley Network Polytron Technologies Inc
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 Valley Network Polytron Technologies Inc filed Critical Valley Network Polytron Technologies Inc
Priority to CN202111018080.XA priority Critical patent/CN113656674B/zh
Publication of CN113656674A publication Critical patent/CN113656674A/zh
Application granted granted Critical
Publication of CN113656674B publication Critical patent/CN113656674B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9558Details of hyperlinks; Management of linked annotations
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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 Transfer Between Computers (AREA)

Abstract

本发明公开一种关于网站爬虫中点击类型超链接的自动化处理方法及装置,该方法包括:通过网络爬虫抓取页面链接;生成网页内容;然后生成超链接队列;利用xpath表达式判断是否含有需要单击的元素;若是返回该表达式,并继续执行,若否跳至最后一步;利用selinum调用虚拟浏览器,重新加载当前页面,如果加载成功,则继续执行,否则跳至最后一步;根据该表达式找到需要单击的元素、进行模拟单击;如果浏览器响应成功,继续执行,否则跳至最后一步;获取响应的内容并进行UTF‑8编码,然后跳到第二步;取出下一个超链接,采用广度或者深度遍历算法继续进行抓取;然后跳到第一步。本发明极大的提高了网络爬虫内容的完整性和准确性。

Description

关于网站爬虫中点击类型超链接的自动化处理方法及装置
技术领域
本发明属于网站爬虫技术领域,尤其涉及一种关于网站爬虫中点击类型超链接的自动化处理方法及装置,适用于在网站爬虫过程中遇到的需要进行人工单击才能进一步访问的链接。
背景技术
随着现代网页前端技术特别是前端语言javascript的发展;出现了很多的优秀的前端框架,比如jquery、vue、react、angular,随着这些框架的出现,继而出现一些优秀的UI组件库,例如bootstrap、element-ui等等,这些框架在兼容性、适用性、便利性和国际化上都做的很优秀,极大的提高了网站开发的效率,因此越来越多的网站开始利用进行这些框架进行开发。
虽然这些框架给网站开发带来了很大的便利性,但是对网站爬虫以及内容检索领域来讲,却带来了很大的困难和挑战,其中最突出的一个问题就是对于一些超链接需要单击才能继续访问;而传统的网络爬虫只抓取网页存在的类似于<a href=“xxx”>xxx</a>这样的超链接,但是对于<a onclick=“xxx”>xxx</a>这样的超链接却捉襟见肘;而这样的超链接在现有的网站中却来越多,特别是存在于“上一页”和“下一页”这样的超链接中;而这些超链接又是网站内容分页的基本样式和方法,从而导致网站爬虫时抓取的内容不完整、不准确。
发明内容
本发明针对传统网站爬虫时不能抓取点击类型超链接(如“上一页”和“下一页”超链接),从而导致抓取内容不完整、不准确的问题,提出一种关于网站爬虫中点击类型超链接的自动化处理方法及装置。
为了实现上述目的,本发明采用以下技术方案:
本发明一方面提出一种关于网站爬虫中点击类型超链接的自动化处理方法,包括:
步骤1:通过网络爬虫抓取页面链接;
步骤2:根据页面链接生成网页内容;
步骤3:将该网页中所有超链接去重之后生成一个超链接队列;
步骤4:在该网页内容的基础上,利用xpath表达式判断是否含有需要单击的元素;若是,则返回该xpath表达式,并执行步骤5,若否,则跳到步骤8;
步骤5:利用selinum调用虚拟浏览器,重新加载当前页面,如果加载成功,则执行步骤6,否则跳到步骤8;
步骤6:根据步骤4返回的xpath表达式进行选择,找到需要单击的元素之后对该元素进行模拟单击,然后等待浏览器响应;如果浏览器响应成功,执行步骤7,否则跳到步骤8;
步骤7:从浏览器中获取响应的内容,并对响应的内容进行UTF-8编码,然后跳到步骤2;
步骤8:取出超链接队列中的下一个超链接,采用广度或者深度遍历算法继续进行抓取;然后跳到步骤1。
进一步地,所述步骤4中,所述xpath表达式包括:
1)//td[contains(text(),'下页')and starts-with(@onclick,'window.location')];
2)//a[contains(text(),'下一页')and starts-with(@href,'javascript:')];
3)//a[contains(text(),'下一页')and@onclick and@href='#'];
4)//a[contains(text(),'下一页')and@onclick];
5)//a[@onclick]。
本发明另一方面提出一种关于网站爬虫中点击类型超链接的自动化处理装置,包括:
页面链接抓取模块,用于通过网络爬虫抓取页面链接;
网页内容生成模块,用于根据页面链接生成网页内容;
去重模块,用于将该网页中所有超链接去重之后生成一个超链接队列;
第一判断模块,用于在该网页内容的基础上,利用xpath表达式判断是否含有需要单击的元素;若是,则返回该xpath表达式,并执行第二判断模块,若否,则执行循环模块;
第二判断模块,用于利用selinum调用虚拟浏览器,重新加载当前页面,如果加载成功,则执行第三判断模块,否则执行循环模块;
第三判断模块,用于根据第一判断模块返回的xpath表达式进行选择,找到需要单击的元素之后对该元素进行模拟单击,然后等待浏览器响应;如果浏览器响应成功,执行编码模块,否则执行循环模块;
编码模块,用于从浏览器中获取响应的内容,并对响应的内容进行UTF-8编码,然后执行网页内容生成模块;
循环模块,用于取出超链接队列中的下一个超链接,采用广度或者深度遍历算法继续进行抓取;然后执行页面链接抓取模块。
进一步地,所述xpath表达式包括:
1)//td[contains(text(),'下页')and starts-with(@onclick,'window.location')];
2)//a[contains(text(),'下一页')and starts-with(@href,'javascript:')];
3)//a[contains(text(),'下一页')and@onclick and@href='#'];
4)//a[contains(text(),'下一页')and@onclick];
5)//a[@onclick]。
与现有技术相比,本发明具有的有益效果:
本发明采用模拟浏览器技术,当判断网页内容中存在需要进行人工单击的特征时,直接利用模拟浏览器对当前页面进行一次加载,然后找到当前需要单击的链接进行模拟单击事件,然后浏览器对该链接进行模拟加载,最后返回相应的内容。通过本发明,对网站爬虫时既能够抓取传统的网页内容,也能够抓取传统的网络爬虫不能抓取的点击类型超链接(如“上一页”和“下一页”超链接),极大的提高了网络爬虫内容的完整性和准确性。
附图说明
图1为本发明实施例一种关于网站爬虫中点击类型超链接的自动化处理方法的基本流程图;
图2为网站爬虫数据对比图;
图3为本发明实施例一种关于网站爬虫中点击类型超链接的自动化处理装置的结构示意图。
具体实施方式
下面结合附图和具体的实施例对本发明做进一步的解释说明:
如图1所示,一种关于网站爬虫中点击类型超链接的自动化处理方法,包括:
步骤1:通过网络爬虫抓取页面链接;
步骤2:根据页面链接生成网页内容;
步骤3:将该网页中所有超链接去重之后生成一个超链接队列;
步骤4:在该网页内容的基础上,利用xpath表达式判断是否含有需要单击的元素;若是,则返回该xpath表达式,并执行步骤5,若否,则跳到步骤8;
步骤5:利用selinum调用虚拟浏览器,重新加载当前页面,如果加载成功,则执行步骤6,否则跳到步骤8;
步骤6:根据步骤4返回的xpath表达式进行选择,找到需要单击的元素之后对该元素进行模拟单击,然后等待浏览器响应;如果浏览器响应成功,执行步骤7,否则跳到步骤8;
步骤7:从浏览器中获取响应的内容,并对响应的内容进行UTF-8编码,然后跳到步骤2;
步骤8:取出超链接队列中的下一个超链接,采用广度或者深度遍历算法继续进行抓取;然后跳到步骤1。
进一步地,所述步骤4中,所述xpath表达式包括:
1)//td[contains(text(),'下页')and starts-with(@onclick,'window.location')];
2)//a[contains(text(),'下一页')and starts-with(@href,'javascript:')];
3)//a[contains(text(),'下一页')and@onclick and@href='#'];
4)//a[contains(text(),'下一页')and@onclick];
5)//a[@onclick]。
为验证本发明效果,进行如下实验:
在本次测试中,我们用了五个网站进行测试,为了消除网络抖动以及服务器性能影响,我们对每个网站进行了十次测试,前五次是用标准的爬虫方法进行测试,后五次是采用本发明方法进行的测试;测试结果如下表所示。为了隐私等原因,我们将网站名称采用网站id来代替。
表1:对比测试结果表
Figure BDA0003237349940000041
Figure BDA0003237349940000051
对比测试图如图2所示。
由表1、图2可知,采用本发明方法之后对于某些网站进行网络爬虫,抓取的数据量得到明显提升,极大的提高了爬虫数据的完整性。
在上述实施例的基础上,如图3所示,本发明另一方面提出一种关于网站爬虫中点击类型超链接的自动化处理装置,包括:
页面链接抓取模块,用于通过网络爬虫抓取页面链接;
网页内容生成模块,用于根据页面链接生成网页内容;
去重模块,用于将该网页中所有超链接去重之后生成一个超链接队列;
第一判断模块,用于在该网页内容的基础上,利用xpath表达式判断是否含有需要单击的元素;若是,则返回该xpath表达式,并执行第二判断模块,若否,则执行循环模块;
第二判断模块,用于利用selinum调用虚拟浏览器,重新加载当前页面,如果加载成功,则执行第三判断模块,否则执行循环模块;
第三判断模块,用于根据第一判断模块返回的xpath表达式进行选择,找到需要单击的元素之后对该元素进行模拟单击,然后等待浏览器响应;如果浏览器响应成功,执行编码模块,否则执行循环模块;
编码模块,用于从浏览器中获取响应的内容,并对响应的内容进行UTF-8编码,然后执行网页内容生成模块;
循环模块,用于取出超链接队列中的下一个超链接,采用广度或者深度遍历算法继续进行抓取;然后执行页面链接抓取模块。
进一步地,所述xpath表达式包括:
1)//td[contains(text(),'下页')and starts-with(@onclick,'window.location')];
2)//a[contains(text(),'下一页')and starts-with(@href,'javascript:')];
3)//a[contains(text(),'下一页')and@onclick and@href='#'];
4)//a[contains(text(),'下一页')and@onclick];
5)//a[@onclick]。
综上,本发明采用模拟浏览器技术,当判断网页内容中存在需要进行人工单击的特征时,直接利用模拟浏览器对当前页面进行一次加载,然后找到当前需要单击的链接进行模拟单击事件,然后浏览器对该链接进行模拟加载,最后返回相应的内容。通过本发明,对网站爬虫时既能够抓取传统的网页内容,也能够抓取传统的网络爬虫不能抓取的点击类型超链接(如“上一页”和“下一页”超链接),极大的提高了网络爬虫内容的完整性和准确性。
以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (4)

1.一种关于网站爬虫中点击类型超链接的自动化处理方法,其特征在于,包括:
步骤1:通过网络爬虫抓取页面链接;
步骤2:根据页面链接生成网页内容;
步骤3:将该网页中所有超链接去重之后生成一个超链接队列;
步骤4:在该网页内容的基础上,利用xpath表达式判断是否含有需要单击的元素;若是,则返回该xpath表达式,并执行步骤5,若否,则跳到步骤8;
步骤5:利用selinum调用虚拟浏览器,重新加载当前页面,如果加载成功,则执行步骤6,否则跳到步骤8;
步骤6:根据步骤4返回的xpath表达式进行选择,找到需要单击的元素之后对该元素进行模拟单击,然后等待浏览器响应;如果浏览器响应成功,执行步骤7,否则跳到步骤8;
步骤7:从浏览器中获取响应的内容,并对响应的内容进行UTF-8编码,然后跳到步骤2;
步骤8:取出超链接队列中的下一个超链接,采用广度或者深度遍历算法继续进行抓取;然后跳到步骤1。
2.根据权利要求1所述的关于网站爬虫中点击类型超链接的自动化处理方法,其特征在于,所述步骤4中,所述xpath表达式包括:
1)//td[contains(text(),'下页')and starts-with(@onclick,'window.location')];
2)//a[contains(text(),'下一页')and starts-with(@href,'javascript:')];
3)//a[contains(text(),'下一页')and@onclick and@href='#'];
4)//a[contains(text(),'下一页')and@onclick];
5)//a[@onclick]。
3.一种关于网站爬虫中点击类型超链接的自动化处理装置,其特征在于,包括:
页面链接抓取模块,用于通过网络爬虫抓取页面链接;
网页内容生成模块,用于根据页面链接生成网页内容;
去重模块,用于将该网页中所有超链接去重之后生成一个超链接队列;
第一判断模块,用于在该网页内容的基础上,利用xpath表达式判断是否含有需要单击的元素;若是,则返回该xpath表达式,并执行第二判断模块,若否,则执行循环模块;
第二判断模块,用于利用selinum调用虚拟浏览器,重新加载当前页面,如果加载成功,则执行第三判断模块,否则执行循环模块;
第三判断模块,用于根据第一判断模块返回的xpath表达式进行选择,找到需要单击的元素之后对该元素进行模拟单击,然后等待浏览器响应;如果浏览器响应成功,执行编码模块,否则执行循环模块;
编码模块,用于从浏览器中获取响应的内容,并对响应的内容进行UTF-8编码,然后执行网页内容生成模块;
循环模块,用于取出超链接队列中的下一个超链接,采用广度或者深度遍历算法继续进行抓取;然后执行页面链接抓取模块。
4.根据权利要求3所述的关于网站爬虫中点击类型超链接的自动化处理装置,其特征在于,所述xpath表达式包括:
1)//td[contains(text(),'下页')and starts-with(@onclick,'window.location')];
2)//a[contains(text(),'下一页')and starts-with(@href,'javascript:')];
3)//a[contains(text(),'下一页')and@onclick and@href='#'];
4)//a[contains(text(),'下一页')and@onclick];
5)//a[@onclick]。
CN202111018080.XA 2021-08-30 2021-08-30 关于网站爬虫中点击类型超链接的自动化处理方法及装置 Active CN113656674B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111018080.XA CN113656674B (zh) 2021-08-30 2021-08-30 关于网站爬虫中点击类型超链接的自动化处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111018080.XA CN113656674B (zh) 2021-08-30 2021-08-30 关于网站爬虫中点击类型超链接的自动化处理方法及装置

Publications (2)

Publication Number Publication Date
CN113656674A true CN113656674A (zh) 2021-11-16
CN113656674B CN113656674B (zh) 2023-06-27

Family

ID=78493394

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111018080.XA Active CN113656674B (zh) 2021-08-30 2021-08-30 关于网站爬虫中点击类型超链接的自动化处理方法及装置

Country Status (1)

Country Link
CN (1) CN113656674B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105243159A (zh) * 2015-10-28 2016-01-13 福建亿榕信息技术有限公司 一种基于可视化脚本编辑器的分布式网络爬虫***
AU2016101343A4 (en) * 2015-07-30 2016-09-01 M Hassan & S Hassan & E Kravchenko & A Shchurov Method and systems for operating dynamic dashboard style website menus
CN108062468A (zh) * 2017-12-25 2018-05-22 南京烽火软件科技有限公司 一种基于图片验证码识别的网络爬虫方法
CN112632358A (zh) * 2020-12-29 2021-04-09 北京天融信网络安全技术有限公司 一种资源链接获取方法、装置、电子设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2016101343A4 (en) * 2015-07-30 2016-09-01 M Hassan & S Hassan & E Kravchenko & A Shchurov Method and systems for operating dynamic dashboard style website menus
CN105243159A (zh) * 2015-10-28 2016-01-13 福建亿榕信息技术有限公司 一种基于可视化脚本编辑器的分布式网络爬虫***
CN108062468A (zh) * 2017-12-25 2018-05-22 南京烽火软件科技有限公司 一种基于图片验证码识别的网络爬虫方法
CN112632358A (zh) * 2020-12-29 2021-04-09 北京天融信网络安全技术有限公司 一种资源链接获取方法、装置、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
何苗;张蕴;: "基于Selenium框架的定向网络数据获取的设计与实现", 工业控制计算机, no. 06 *

Also Published As

Publication number Publication date
CN113656674B (zh) 2023-06-27

Similar Documents

Publication Publication Date Title
CN103095681B (zh) 一种检测漏洞的方法及装置
CN109033115B (zh) 一种动态网页爬虫***
KR101908162B1 (ko) 통합 개발 환경에서의 라이브 브라우저 툴 제공 기법
CN109033195A (zh) 网页信息的获取方法、获取设备及计算机可读介质
CN106599270B (zh) 网络数据抓取方法和爬虫
CN112637361B (zh) 一种页面代理方法、装置、电子设备及存储介质
WO2014133528A1 (en) Determining coverage of dynamic security scans using runtime and static code analyses
CN110909229A (zh) 一种基于模拟浏览器访问的网页数据获取和存储的***
CN111367595B (zh) 数据处理方法、程序运行方法、装置及处理设备
CN112417240A (zh) 网站链接检测方法、装置、计算机设备
CN111538883A (zh) 一种数据爬取方法、***及设备
CN103631806A (zh) 一种网络信息抓取方法和装置
CN108306918B (zh) 一种基于程序动态分析的网站访问信息自动获取方法
US20160034378A1 (en) Method and system for testing page link addresses
CN112612943A (zh) 一种基于异步处理框架的具有自动测试功能的数据爬取方法
CN111324894A (zh) 一种基于web应用安全的XSS漏洞检测方法及***
CN112632358A (zh) 一种资源链接获取方法、装置、电子设备及存储介质
US9003378B2 (en) Client-side application script error processing
US10198408B1 (en) System and method for converting and importing web site content
CN104281629A (zh) 从网页中提取图片的方法、装置及客户端设备
CN106371987A (zh) 测试方法和装置
CN114491560A (zh) 一种漏洞检测方法、装置、存储介质及电子设备
CN110719344B (zh) 域名获取方法、装置、电子设备及存储介质
CN113656674B (zh) 关于网站爬虫中点击类型超链接的自动化处理方法及装置
Li et al. Automatically crawling dynamic web applications via proxy-based javascript injection and runtime analysis

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
GR01 Patent grant
GR01 Patent grant