CN112417252A - 爬虫路径确定方法、装置、存储介质与电子设备 - Google Patents
爬虫路径确定方法、装置、存储介质与电子设备 Download PDFInfo
- Publication number
- CN112417252A CN112417252A CN202011412538.5A CN202011412538A CN112417252A CN 112417252 A CN112417252 A CN 112417252A CN 202011412538 A CN202011412538 A CN 202011412538A CN 112417252 A CN112417252 A CN 112417252A
- Authority
- CN
- China
- Prior art keywords
- data
- attribute
- value
- determining
- attributes
- 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
Links
Images
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/951—Indexing; Web crawling techniques
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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 Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种爬虫路径确定方法、爬虫路径确定装置、计算机可读存储介质与电子设备,涉及计算机技术领域。所述方法爬虫路径确定包括:获取目标页面中各元素的属性;利用预设的数据重复性指标和/或数据多样性指标,从所述属性中确定一种或多种特征属性;通过所述特征属性确定所述目标页面的爬虫路径。本公开降低了爬虫处理过程对于CPU、内存等资源的消耗,提高了效率,特别适用于移动端页面的信息爬取。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种爬虫路径确定方法、爬虫路径确定装置、计算机可读存储介质与电子设备。
背景技术
爬虫是指通过自动化技术识别并抓取UI(User Interface,用户界面)信息的程序或脚本技术,在搜索引擎、数据分析等领域有着广泛应用。
相关技术中,抓取互联网页面中的信息主要是通过爬取邻近元素的方式实现的,具体为:在一个页面中,每次爬取信息前,先遍历页面中所有元素的位置坐标,确定距离当前最近的元素,再爬取该元素的信息,由此实现对每个元素的信息爬取。然而,该方法需要遍历所有位置坐标,计算量较高,且信息爬取的耗时较长。
发明内容
本公开提供了一种爬虫路径确定方法、爬虫路径确定装置、计算机可读存储介质与电子设备,进而至少在一定程度上改善相关技术中实现页面爬虫所需计算量较高、耗时较长的问题。
根据本公开的第一方面,提供一种爬虫路径确定方法,包括:获取目标页面中各元素的属性;利用预设的数据重复性指标和/或数据多样性指标,从所述属性中确定一种或多种特征属性;通过所述特征属性确定所述目标页面的爬虫路径。
可选的,所述利用预设的数据重复性指标和/或数据多样性指标,从所述属性中确定一种或多种特征属性,包括:对所述各元素的属性进行统计,确定每种属性的所述数据重复性指标的值和所述数据多样性指标的值;根据所述每种属性的所述数据重复性指标的值和所述数据多样性指标的值,从所述属性中确定所述特征属性。
可选的,所述对所述各元素的属性进行统计,确定每种属性的所述数据重复性指标的值和所述数据多样性指标的值,包括:统计每种属性下所述各元素对应的数据,根据所述每种属性下所有数据的数量、重复数据的数量,确定所述每种属性的所述数据重复性指标的值。
可选的,所述根据所述每种属性下所有数据的数量、重复数据的数量,确定所述每种属性的所述数据重复性指标的值,包括:通过以下公式计算任一属性i的所述数据重复性指标的值:
其中,UDi表示属性i的所述数据重复性指标的值,Q0表示属性i的所有数据的数量,max(f)表示属性i中不同重复数据的数量中的最大值。
可选的,所述对所述各元素的属性进行统计,确定每种属性的所述数据重复性指标的值和所述数据多样性指标的值,包括:统计每种属性下所述各元素对应的数据,根据所述每种属性下所有数据的数量、非空数据的数量、去重后非空数据的数量,确定所述每种属性的所述数据多样性指标的值。
可选的,所述根据所述每种属性下所有数据的数量、非空数据的数量、去重后非空数据的数量,确定所述每种属性的所述数据多样性指标的值,包括:通过以下公式计算任一属性i的所述数据多样性指标的值:
其中,IIFi表示属性i的所述数据多样性指标的值,Q0表示属性i的所有数据的数量,Q1表示属性i的非空数据的数量,Q2表示属性i的去重后非空数据的数量。
可选的,所述根据所述每种属性的所述数据重复性指标的值和所述数据多样性指标的值,从所述属性中确定所述特征属性,包括:将所述数据重复性指标的值大于第一阈值,所述数据多样性指标的值大于第二阈值的所述属性确定为所述特征属性。
可选的,所述获取目标页面中各元素的属性,包括:基于所述目标页面的元素分布信息,对所述目标页面中各元素的属性进行预爬取。
可选的,所述通过所述特征属性确定所述目标页面的爬虫路径,包括:根据所述特征属性下所述各元素对应的数据,滤除所述各元素中的无用元素,将剩余的元素确定为待爬取元素;记录所述待爬取元素的位置信息,得到所述目标页面的爬虫路径。
可选的,在将剩余的元素确定为待爬取元素后,所述方法还包括:将所述特征属性的数据相同的所述待爬取元素进行合并,得到合并后的所述待爬取元素。
可选的,所述通过所述特征属性确定所述目标页面的爬虫路径,包括:将所述目标页面的每个元素对应的所述特征属性的数据分别输入预设模型,得到所述每个元素是否为待爬取元素的识别结果;记录所述待爬取元素的位置信息,得到所述目标页面的爬虫路径。
可选的,所述方法还包括:根据所述目标页面的爬虫路径,对所述爬虫路径中的元素进行爬取,得到所述目标页面的信息。
根据本公开的第二方面,提供一种爬虫路径确定装置,包括:元素属性获取模块,被配置为获取目标页面中各元素的属性;特征属性确定模块,被配置为利用预设的数据重复性指标和/或数据多样性指标,从所述属性中确定一种或多种特征属性;爬虫路径确定模块,被配置为通过所述特征属性确定所述目标页面的爬虫路径。
根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面的爬虫路径确定方法及其可能的实施方式。
根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令。其中,所述处理器配置为经由执行所述可执行指令来执行上述第一方面的爬虫路径确定方法及其可能的实施方式。
本公开的技术方案具有以下有益效果:
利用预设的数据重复性指标和/或数据多样性指标对目标页面中各元素的属性进行统计,从中确定特征属性,进而确定目标页面的爬虫路径。一方面,本方案通过确定目标页面的爬虫路径,便于后续在爬取页面信息时,直接采用爬虫路径对页面元素进行定位,无需遍历页面中的所有元素以确定邻近元素,因此降低了CPU、内存等资源的消耗,提高了爬虫处理的速率。另一方面,无需对元素的所有属性进行处理,而从中筛选出特征属性,以对元素进行准确表征,由此进一步降低了资源的消耗,提高了效率。再一方面,本方案特别适用于移动端页面的信息爬取,由于移动端页面的刷新频率较低,无需频繁更新爬虫路径,具有较高的实用性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施方式,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出用户获取信息渠道的统计结果示意图;
图2示出本示例性实施方式中一种系统架构的示意图;
图3示出本示例性实施方式中一种爬虫路径确定方法的流程图;
图4示出本示例性实施方式中一种页面及其元素属性的示意图;
图5示出本示例性实施方式中另一种页面及其元素属性的示意图;
图6示出本示例性实施方式中一种确定特征属性方法的流程图;
图7示出本示例性实施方式中另一种确定特征属性方法的流程图;
图8示出本示例性实施方式中一种根据特征属性确定爬虫路径的方法的流程图;
图9示出本示例性实施方式中另一种根据特征属性确定爬虫路径的方法的流程图;
图10示出本示例性实施方式中一种爬虫路径确定装置的结构图;
图11示出本示例性实施方式中一种电子设备的结构图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
附图仅为本公开的示意性图解,图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图1示出了某调查报告中对于用户获取信息渠道的统计结果,可见,以微信、抖音等为代表的移动端媒体或社交平台,已成为大部分用户获取信息的主要渠道,因此开发针对移动端页面的爬虫工具有着现实意义。相比于PC(Personal Computer,个人电脑)端,移动端在通信协议、页面加载环境等方面存在差别,相关技术中将PC端的爬虫工具直接地移植到移动端,占用较多的系统资源,导致实际运行效率低下,甚至完全无法运行。
鉴于上述问题,本公开的示例性实施方式提供一种爬虫路径确定方法。图2示出了该方法运行环境的示例性系统架构。参考图2所示,该系统架构200可以包括:移动端210与PC端220。移动端210可以是智能手机、平板电脑等移动设备;PC端220可以是台式计算机等;移动端210与PC端220之间可以通过网络,也可以通过其他有线或无线的方式形成连接,如USB(Universal Serial Bus,通用串行总线)端口、蓝牙等。PC端220可以运行爬虫工具,通过移动端210爬取相关页面的信息。当然,也可以由移动端210单独地运行爬虫工具,在不依赖于PC端220的情况下实现信息爬取。
需要说明的是,PC端220也可以通过其他形式的计算机进行替代,如采用服务器运行爬虫工具,与移动端210通过网络连接,爬取信息。
本公开示例性实施方式的爬虫路径确定方法,可以由上述移动端210或PC端220执行。
在一种可选的实施方式中,对于Android系统的移动端210,可以部署Android UI(User Interface,用户界面)的自动化框架ATX-agent、UIAutomator作为实现爬虫的基础架构,在PC端220上运行ADB(Android Debug Bridge,安卓调试桥),通过ADB命令控制移动端210进行点击等操作,获取移动端210上页面的信息,并在PC端220进行展示。
图3示出了上述爬虫路径确定方法的示例性流程,可以包括:
步骤S310,获取目标页面中各元素的属性;
步骤S320,利用预设的数据重复性指标和/或数据多样性指标,从上述属性中确定一种或多种特征属性;
步骤S330,通过上述特征属性确定目标页面的爬虫路径。
基于上述方法,利用预设的数据重复性指标和/或数据多样性指标对目标页面中各元素的属性进行统计,从中确定特征属性,进而确定目标页面的爬虫路径。一方面,本方案通过确定目标页面的爬虫路径,便于后续在爬取页面信息时,直接采用爬虫路径对页面元素进行定位,无需遍历页面中的所有元素以确定邻近元素,因此降低了CPU、内存等资源的消耗,提高了爬虫处理的速率。另一方面,无需对元素的所有属性进行处理,而从中筛选出特征属性,以对元素进行准确表征,由此进一步降低了资源的消耗,提高了效率。再一方面,本方案特别适用于移动端页面的信息爬取,由于移动端页面的刷新频率较低,无需频繁更新爬虫路径,具有较高的实用性。
下面对图3中的每个步骤进行具体说明。
步骤S310中,获取目标页面中各元素的属性。
目标页面是指需要爬取信息的任意页面,可以是App(Application,应用程序)中的页面或网页。元素是指页面中信息的组成单位,通常是对页面中信息的细粒度描述,是可爬取的节点,包括文本、图标、图片等。属性是指元素在不同方面的信息,包括元素的类型、文本内容、对应的资源等,每种属性通常对应于某一方面的信息。在一些实施方式中,属性也可以体现为元素的标签。
图4示出了微信页面中元素属性的示意图。图4所示的微信页面中,“朋友圈”、“扫一扫”等是可爬取的元素,以“朋友圈”为例,其属性(Prop)包括activity、package、className,description,text等,每种属性对应于特定的数据,即属性的值(Value),例如package对应的数据为com.tencent.mm。
在一种可选的实施方式中,步骤S310可以包括:
基于目标页面的元素分布信息,对目标页面中各元素的属性进行预爬取。
其中,元素分布信息包括目标页面中各元素所在的位置信息,例如在目标页面中确定一个起始元素,如可以是横坐标与纵坐标最小的元素(即页面左上角的元素),将其他元素与起始元素的相对位置信息记录在元素分布信息中。元素分布信息可以通过预先对目标页面进行解析而获得。预爬取是指在确定爬虫路径之前,对元素进行初次爬取,可以得到元素的属性信息,如每种属性对应的数据。例如,通过ADB命令对图4微信页面中的左上角“微信”元素进行预爬取,得到如下信息,其中每一行表示一种属性及其数据:
<node index="0",//节点的索引编号
text="微信",//在页面中所展现的文本
resource-id="",//资源唯一标识
class="android.widget.FrameLayout",//所采用的类
package="com.tencent.mm",//包名
content-desc="",//文本描述信息
checkable="false",//是否可检查
checked="false",//是否已检查
clickable="false",//是否可点击
enabled="true",//是否启动
focusable="false",//是否允许获取焦点
focused="false",//是否已获取焦点
scrollable="false",//是否可滚动
long-clickable="false",//是否可长按
password="false",//是否需要密码
selected="false",//是否被选中
bounds="[0,0][1404,2496]"//位置坐标,可以包括左上与右下两角点的坐标>
以上仅是示意性示出“微信”元素的部分属性信息,对于不同的元素,所能获取的属性可能也不同,本公开对此不做限定。
通过元素分布信息,可以对每个元素进行预爬取,获取其属性信息。在一种可选的实施方式中,可以通过XPath(Extensible Markup Language Path,XML路径语言)等方法定位到目标页面中的起始元素,并爬取信息,然后根据元素分布信息确定不同元素之间的相对位置关系,从起始元素开始,逐个定位到邻近元素并爬取信息,从而完成对整个页面的预爬取。以图5为例进行说明,图5示出了微信中某一公众号的页面,虚线框内的均为页面中的元素,以左上角的“×”为起始元素,爬取其属性信息,如图中右侧所示,然后根据该页面中的元素布局信息,逐步定位到下面的“发消息”即不同文章的标题,爬取相关信息,从而得到每个元素的属性信息。
继续参考图3,步骤S320中,利用预设的数据重复性指标和/或数据多样性指标,从上述属性中确定一种或多种特征属性。
其中,数据重复性指标是度量某一属性下不同元素所对应数据的重复程度的指标;数据多样性指标是度量某一属性下不同元素所对应数据的多样程度(不重复程度)的指标。对于同一属性,数据重复性指标和数据多样性指标通常为负相关。本示例性实施方式中,可以采用两种指标中的任一种,或者同时采用两种指标,对每种属性的数据分布特征进行表示,进而筛选出若干特征属性,特征属性是指能够对元素特征进行充分表征的属性。
在一种可选的实施方式中,参考图6所示,所述利用预设的数据重复性指标和/或数据多样性指标,从上述属性中确定一种或多种特征属性,可以包括:
步骤S610,对各元素的属性进行统计,确定每种属性的数据重复性指标的值和数据多样性指标的值;
步骤S620,根据每种属性的数据重复性指标的值和数据多样性指标的值,从上述属性中确定特征属性。
下面分别对数据重复性指标和数据多样性指标的计算方式进行说明:
一、数据重复性指标
在一种可选的实施方式中,统计每种属性下各元素对应的数据,根据每种属性下所有数据的数量、重复数据的数量,确定每种属性的数据重复性指标的值。
一般的,重复数据的数量越多,数据重复性指标的值越大,例如数据重复性指标可以是重复数据的数量在所有数据的数量中的占比。
以任一属性i为例,可以通过以下公式计算属性i的数据重复性指标的值:
其中,UD(Uniformity Degree,数据重合度)表示数据重复性指标的一种具体形式,UDi表示属性i的数据重复性指标的值,Q0表示属性i的所有数据的数量,max(f)表示属性i中不同重复数据的数量中的最大值。假设,统计属性i下的所有元素对应的数据,数据k1的数量为f1(即有f1个元素,其属性i的数据均为k1),数据k2的数量为f2,…,数据kn的数量为fn。取f1~fn中的最大值,即max(f)。公式(1)实际上表示:将属性i的数据中,取重复最多的数据,将其重复的数量与属性i的所有数据的数量求比值,作为数据重复性指标的值。也就是说,在公式(1)中,仅关注重复最多的数据,而对于其他数据的重复情况不做考虑,由此能够降低计算量。
需要说明的是,公式(1)中以属性i的所有数据的数量Q0作为分母,在一些实施方式中,也可以将Q0替换为Q1,Q1表示属性i的非空数据的数量,即属性i的所有数据中,去除为空值的数据(如图4中元素“朋友圈”的属性description、label的数据为空值),剩余的非空数据的数量。或者,将空值作为一类特别的数据,也纳入到重复性的统计中,如对于某些属性,空值的重复数量多于其他数据,因此可以采用空值的重复数量代入公式(1)的分子中进行计算。
也可以通过以下公式计算属性i的数据重复性指标的值:
其中,a1、a2、…、an分别为重复数据的数量f1、f2、…、fn的权重,可以满足对于1~n之间的任意自然数i和j,若fi>fj,则有ai>aj。也就是说,在公式(2)中,将所有数据的重复情况均纳入计算,从重复最多的数据开始,到重复最少的数据,其数量对应的权重也呈递减变化,即重复越多的数据,其重复的数量对于数据重复性指标的影响越大。公式(2)对于那些有多个数据重复程度相近的属性来说,所计算出的数据重复性指标的值能够更加有效地反映真实情况。
特别的,当属性i中所有数据都相同时,属性i的数据重复性指标的值为1。
二、数据多样性指标
在一种可选的实施方式中,统计每种属性下各元素对应的数据,根据每种属性下所有数据的数量、非空数据的数量、去重后非空数据的数量,确定每种属性的数据多样性指标的值。
一般的,去重后非空数据的数量越多,数据多样性指标的值越大,例如数据多样性指标可以是去重后非空数据的数量在所有数据的数量中的占比。
以任一属性i为例,可以通过以下公式计算属性i的数据重复性指标的值:
其中,IIF(Inverse Information,逆向信息量)表示数据多样性指标的一种具体形式,IIFi表示属性i的数据多样性指标的值;Q0表示属性i的所有数据的数量;Q1表示属性i的非空数据的数量;Q2表示属性i的去重后非空数据的数量,可以是统计属性i的所有数据,将重复的数据算为一个,并去除空值数据后,所得到的数量。公式(3)中,log左侧为属性的多样性评估,log右侧是对左侧的概率修正,主要在空值数据数量较多的情况下,将整体的值修正为更小的值,以及在空值数据数量较多的情况下,将整体的值修正为更大的值。IIF体现了在考虑空值数据影响的情况下,属性中不同数据的多样性程度。
以图4中的text、resource_id等主要属性为例,对Q0、Q1、Q2等进行统计,以及对IIF进行计算的结果如表1所示。由于不同元素的位置坐标一般均不同,因此bounds的逆向信息量最大,其次是content_desc、text,是关于元素的文本内容,因此多样性也较高。
表1
在得到每种属性的数据重复性指标的值和数据多样性指标的值,可以对这两种指标分别设置衡量标准。在一种可选的实施方式中,步骤S520,可以包括:
将数据重复性指标的值大于第一阈值,数据多样性指标的值大于第二阈值的属性确定为特征属性。
其中,第一阈值和第二阈值分别是针对数据重复性指标和数据多样性指标的衡量标准,可以根据经验或实际情况设置。本示例性实施方式中,需要找到体现元素特征的特征属性,一般来说,特征属性应当能够表示出不同元素之间的区别,即数据多样性应当较高,因此设置数据多样性指标的值大于第二阈值的条件;同时,考虑到特征属性应当能够表示一部分元素之间的共性,这种共性可以是局部共性(若为全局共性,则该共性无区分度,无使用价值),即数据重复性也应当较高,因此设置数据重复性指标的值大于第一阈值的条件。并且,基于数据重复性指标和数据多样性指标两方面的综合考量,排除了一种指标的值非常高、另一种指标的值非常低的那种极端化属性,从而进一步提高确定特征属性的准确度。
以图5为例,与页面中的所有元素进行预爬取,计算每种属性的数据重合度,className、package、activity、clickable的数据重合度较高,大于第一阈值,但是package、activity、clickable的逆向信息量较低,只有className的逆向信息量(5.25%)大于第二阈值,所以选取className作为特征属性。
在一种可选的实施方式中,参考图7所示,所述根据每种属性的数据重复性指标的值和数据多样性指标的值,从上述属性中确定特征属性,可以包括:
步骤S710,将数据重复性指标的值大于第三阈值的属性确定为候选属性;
步骤S720,在每种候选属性中,分别去除数量最多的一个重复数据,然后确定每种候选属性的数据多样性指标的值;
步骤S730,将数据多样性指标的值大于第四阈值的候选属性确定为特征属性。
其中,第三阈值是与第一阈值无关的另一衡量数据重复性指标的阈值,第四阈值是与第二阈值无关的另一衡量数据多样性指标的阈值。第三阈值和第四阈值可以根据经验或实际情况设置。在一种可选的实施方式中,步骤S710中数据重复性指标的值可以采用上述公式(1)来计算,这样得到的数据重复性指标的值表示重复最多的一个数据的重复情况,如果大于第三阈值,说明对应的属性下存在一个重复程度很高的数据,该数据可能是对信息爬取来说无用的数据。将该数据去除后,如果将剩余数据计算数据多样性指标的值大于第四阈值,说明剩余数据具有较强的特征性,对应的属性可以作为特征属性。
继续参考图3,步骤S330中,通过上述特征属性确定目标页面的爬虫路径。
通过特征属性可以对目标页面的所有元素进行筛选,确定哪些元素是需要爬取的元素,即待爬取元素,哪些元素是对于信息爬取来说的无用元素。在待爬取元素之间形成爬虫路径。在一种可选的实施方式中,后续对目标页面进行信息爬取时,可以根据目标页面的爬虫路径,对爬虫路径中的元素进行爬取,得到目标页面的信息。通过爬虫路径,可以直接定位到路径中的各个元素,无需遍历整个页面,非常便捷高效。
在一种可选的实施方式中,参考图8所示,所述通过上述特征属性确定目标页面的爬虫路径,可以包括:
步骤S810,根据特征属性下各元素对应的数据,滤除各元素中的无用元素,将剩余的元素确定为待爬取元素;
步骤S830,记录待爬取元素的位置信息,得到目标页面的爬虫路径。
例如,可以预先为不同属性配置无用数据清单,对比特征属性下各元素对应的数据与特征属性的无用数据清单,将处于清单中的数据所对应的元素作为无用元素;或者将特征属性下重复程度较高的数据确定为无用数据,如计算某一属性下某一数据的重复数量在该属性的数据总数量中所占比例,如果大于第五阈值(根据经验或实际情况设定的阈值),则该数据为无用数据,对应的元素为无用元素。以图5为例,如果确定className为特征属性,可以预先配置无用数据android.widget.FrameLayout(主要用于Android前端页面的帧布局,通用性很高),遍历目标页面中每个元素的className,滤除数据为android.widget.FrameLayout的无用元素,剩余的元素为有价值的待爬取元素。
在一种可选的实施方式中,步骤S810之后,还可以执行步骤S820:
步骤S820,将特征属性的数据相同的待爬取元素进行合并,得到合并后的待爬取元素。
需要说明的是,步骤S820中特征属性的数据相同,是指所有特征属性的数据均相同,例如有三种特征属性,待爬取元素A1和元素A2对应的这三种特征属性数据都相同时,将A1和A2合并为一个待爬取元素。这是由于,在预爬取元素信息时,由于定位不准确等原因,可能对某些元素进行了重复爬取,例如某一文章标题较长,系统在不同的位置爬取了多次,通过对特征属性的数据相同的待爬取元素进行合并,可以消除重复爬取的情况,提高准确度。
步骤S820相当于对待爬取元素进行重复检测,如果在步骤S310中即对元素进行过重复检测,例如在预爬取时根据元素的尺寸信息进行重复检测,则可以跳过步骤S820。
待爬取元素的属性信息中包括bounds,即位置坐标,对待爬取元素的位置坐标进行整理,形成贯穿所有待爬取元素的路径,即目标页面的爬虫路径。
在另一种可选的实施方式中,参考图9所示,所述通过上述特征属性确定目标页面的爬虫路径,可以包括:
步骤S910,将目标页面的每个元素对应的特征属性的数据分别输入预设模型,得到每个元素是否为待爬取元素的识别结果;
步骤S920,记录待爬取元素的位置信息,得到目标页面的爬虫路径。
其中,预设模型可以是预先训练的机器学习模型,例如随机森林模型、神经网络模型等。训练过程可以包括:预先获取大量的元素样本,提取其不同属性的数据作为训练数据,人为标注元素样本是否为待爬取元素,“是”可以表示为1(即样本元素为有用元素),“否”可以表示为0(即样本元素为无用元素),作为标注数据;利用训练数据和标注数据训练上述预设模型,更新模型参数,以在测试集上达到一定的准确率,表示训练完成。在此基础上,将目标页面中每个元素对应的特征属性的数据分别形成一组输入数据,输入到预设模型中,输出对应的识别结果,即是否为待爬取元素。再通过待爬取元素的位置信息形成爬虫路径,具体可以参考步骤S830。
表2示出了以二维表格的形式所记录的图5中页面的爬虫路径。对待爬取元素的位置进行排序,例如按照纵坐标从小到大的顺序排序,以步长为单位构建表格,页面中的第一篇文章的位置为起点(0,0),第二篇文章(1,0)表示在第一篇文章下方一个步长位置处的元素。由此在后续每次查找邻近元素时,根据选定元素进行查表即可快速得到结果。
表2
在一种可选的实施方式中,如果移动端发生翻页等动作,导致页面刷新,则以刷新后的页面为目标页面,再次执行图3所示的方法流程,以确定爬虫路径。
实际应用中,采用本示例性实施方式的爬虫路径确定方法确定爬虫路径后,对页面中的信息进行爬取,平均可以降低62%的内存消耗与73的CPU占用率,爬虫速率提高9.2倍。
本公开的示例性实施方式还提供一种爬虫路径确定装置。参考图10所示,该爬虫路径确定装置1000可以包括:
元素属性获取模块1010,被配置为获取目标页面中各元素的属性;
特征属性确定模块1020,被配置为利用预设的数据重复性指标和/或数据多样性指标,从上述属性中确定一种或多种特征属性;
爬虫路径确定模块1030,被配置为通过上述特征属性确定目标页面的爬虫路径。
在一种可选的实施方式中,特征属性确定模块1020,被配置为:
对各元素的属性进行统计,确定每种属性的数据重复性指标的值和数据多样性指标的值;
根据每种属性的数据重复性指标的值和数据多样性指标的值,从上述属性中确定特征属性。
在一种可选的实施方式中,特征属性确定模块1020包括第一指标确定子模块,被配置为:
统计每种属性下各元素对应的数据,根据每种属性下所有数据的数量、重复数据的数量,确定每种属性的数据重复性指标的值。
在一种可选的实施方式中,第一指标确定子模块,被配置为:
通过以下公式计算任一属性i的数据重复性指标的值:
其中,UDi表示属性i的数据重复性指标的值,Q0表示属性i的所有数据的数量,max(f)表示属性i中不同重复数据的数量中的最大值。
在一种可选的实施方式中,特征属性确定模块1020包括第二指标确定子模块,被配置为:
统计每种属性下各元素对应的数据,根据每种属性下所有数据的数量、非空数据的数量、去重后非空数据的数量,确定每种属性的数据多样性指标的值。
在一种可选的实施方式中,第二指标确定子模块值,被配置为:
通过以下公式计算任一属性i的数据多样性指标的值:
其中,IIFi表示属性i的数据多样性指标的值,Q0表示属性i的所有数据的数量,Q1表示属性i的非空数据的数量,Q2表示属性i的去重后非空数据的数量。
在一种可选的实施方式中,特征属性确定模块1020,被配置为:
将数据重复性指标的值大于第一阈值,数据多样性指标的值大于第二阈值的属性确定为特征属性。
在一种可选的实施方式中,特征属性确定模块1020,被配置为:
将数据重复性指标的值大于第三阈值的属性确定为候选属性;
在每种候选属性中,分别去除数量最多的一个重复数据,然后确定每种候选属性的数据多样性指标的值;
将数据多样性指标的值大于第四阈值的候选属性确定为特征属性。
在一种可选的实施方式中,元素属性获取模块1010,被配置为:
基于目标页面的元素分布信息,对目标页面中各元素的属性进行预爬取。
在一种可选的实施方式中,爬虫路径确定模块1030,被配置为:
根据特征属性下各元素对应的数据,滤除各元素中的无用元素,将剩余的元素确定为待爬取元素;
记录待爬取元素的位置信息,得到目标页面的爬虫路径。
在一种可选的实施方式中,爬虫路径确定模块1030,被配置为:
在确定待爬取元素后,将特征属性的数据相同的待爬取元素进行合并,得到合并后的待爬取元素。
在一种可选的实施方式中,爬虫路径确定模块1030,被配置为:
将目标页面的每个元素对应的特征属性的数据分别输入预设模型,得到每个元素是否为待爬取元素的识别结果;
记录待爬取元素的位置信息,得到目标页面的爬虫路径。
在一种可选的实施方式中,爬虫路径确定装置1000还可以包括目标页面爬取模块,被配置为:
根据目标页面的爬虫路径,对爬虫路径中的元素进行爬取,得到目标页面的信息。
上述装置中各部分的具体细节在方法部分实施方式中已经详细说明,因而不再赘述。
本公开的示例性实施方式还提供了一种计算机可读存储介质,可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤,例如可以执行图3中任意一个或多个步骤。该程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本公开的示例性实施方式还提供了一种电子设备,可以是信息平台的后台服务器。下面参考图11对该电子设备进行说明。应当理解,图11显示的电子设备1100仅仅是一个示例,不应对本本公开实施方式的功能和使用范围带来任何限制。
如图11所示,电子设备1100以通用计算设备的形式表现。电子设备1100的组件可以包括但不限于:至少一个处理单元1110、至少一个存储单元1120、连接不同系统组件(包括存储单元1120和处理单元1110)的总线1130。
其中,存储单元存储有程序代码,程序代码可以被处理单元1110执行,使得处理单元1110执行本说明书上述"示例性方法"部分中描述的根据本发明各种示例性实施方式的步骤。例如,处理单元1110可以执行如图3所示的方法步骤等。
存储单元1120可以包括易失性存储单元,例如随机存取存储单元(RAM)1121和/或高速缓存存储单元1122,还可以进一步包括只读存储单元(ROM)1123。
存储单元1120还可以包括具有一组(至少一个)程序模块1125的程序/实用工具1124,这样的程序模块1125包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1130可以包括数据总线、地址总线和控制总线。
电子设备1100也可以与一个或多个外部设备1200(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(I/O)接口1140进行。电子设备1100还可以通过网络适配器1150与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1150通过总线1130与电子设备1100的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1100使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方式。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施方式仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限定。
Claims (15)
1.一种爬虫路径确定方法,其特征在于,包括:
获取目标页面中各元素的属性;
利用预设的数据重复性指标和/或数据多样性指标,从所述属性中确定一种或多种特征属性;
通过所述特征属性确定所述目标页面的爬虫路径。
2.根据权利要求1所述的方法,其特征在于,所述利用预设的数据重复性指标和/或数据多样性指标,从所述属性中确定一种或多种特征属性,包括:
对所述各元素的属性进行统计,确定每种属性的所述数据重复性指标的值和所述数据多样性指标的值;
根据所述每种属性的所述数据重复性指标的值和所述数据多样性指标的值,从所述属性中确定所述特征属性。
3.根据权利要求2所述的方法,其特征在于,所述对所述各元素的属性进行统计,确定每种属性的所述数据重复性指标的值和所述数据多样性指标的值,包括:
统计每种属性下所述各元素对应的数据,根据所述每种属性下所有数据的数量、重复数据的数量,确定所述每种属性的所述数据重复性指标的值。
5.根据权利要求2所述的方法,其特征在于,所述对所述各元素的属性进行统计,确定每种属性的所述数据重复性指标的值和所述数据多样性指标的值,包括:
统计每种属性下所述各元素对应的数据,根据所述每种属性下所有数据的数量、非空数据的数量、去重后非空数据的数量,确定所述每种属性的所述数据多样性指标的值。
7.根据权利要求2所述的方法,其特征在于,所述根据所述每种属性的所述数据重复性指标的值和所述数据多样性指标的值,从所述属性中确定所述特征属性,包括:
将所述数据重复性指标的值大于第一阈值,所述数据多样性指标的值大于第二阈值的所述属性确定为所述特征属性。
8.根据权利要求1所述的方法,其特征在于,所述获取目标页面中各元素的属性,包括:
基于所述目标页面的元素分布信息,对所述目标页面中各元素的属性进行预爬取。
9.根据权利要求1所述的方法,其特征在于,所述通过所述特征属性确定所述目标页面的爬虫路径,包括:
根据所述特征属性下所述各元素对应的数据,滤除所述各元素中的无用元素,将剩余的元素确定为待爬取元素;
记录所述待爬取元素的位置信息,得到所述目标页面的爬虫路径。
10.根据权利要求9所述的方法,其特征在于,在将剩余的元素确定为待爬取元素后,所述方法还包括:
将所述特征属性的数据相同的所述待爬取元素进行合并,得到合并后的所述待爬取元素。
11.根据权利要求1所述的方法,其特征在于,所述通过所述特征属性确定所述目标页面的爬虫路径,包括:
将所述目标页面的每个元素对应的所述特征属性的数据分别输入预设模型,得到所述每个元素是否为待爬取元素的识别结果;
记录所述待爬取元素的位置信息,得到所述目标页面的爬虫路径。
12.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述目标页面的爬虫路径,对所述爬虫路径中的元素进行爬取,得到所述目标页面的信息。
13.一种爬虫路径确定装置,其特征在于,包括:
元素属性获取模块,被配置为获取目标页面中各元素的属性;
特征属性确定模块,被配置为利用预设的数据重复性指标和/或数据多样性指标,从所述属性中确定一种或多种特征属性;
爬虫路径确定模块,被配置为通过所述特征属性确定所述目标页面的爬虫路径。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至12任一项所述的方法。
15.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至12任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011412538.5A CN112417252B (zh) | 2020-12-04 | 2020-12-04 | 爬虫路径确定方法、装置、存储介质与电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011412538.5A CN112417252B (zh) | 2020-12-04 | 2020-12-04 | 爬虫路径确定方法、装置、存储介质与电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112417252A true CN112417252A (zh) | 2021-02-26 |
CN112417252B CN112417252B (zh) | 2023-05-09 |
Family
ID=74830442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011412538.5A Active CN112417252B (zh) | 2020-12-04 | 2020-12-04 | 爬虫路径确定方法、装置、存储介质与电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112417252B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120259833A1 (en) * | 2011-04-11 | 2012-10-11 | Vistaprint Technologies Limited | Configurable web crawler |
CN106250396A (zh) * | 2016-07-19 | 2016-12-21 | 厦门雅迅网络股份有限公司 | 一种图像标签自动生成系统及方法 |
CN107808000A (zh) * | 2017-11-13 | 2018-03-16 | 哈尔滨工业大学(威海) | 一种暗网数据采集与抽取系统及方法 |
CN107943838A (zh) * | 2017-10-30 | 2018-04-20 | 北京大数元科技发展有限公司 | 一种自动获取xpath生成爬虫脚本的方法及系统 |
CN109783728A (zh) * | 2018-12-29 | 2019-05-21 | 安徽听见科技有限公司 | 页面爬虫规则更新方法及系统 |
CN110020068A (zh) * | 2017-09-26 | 2019-07-16 | 北京国双科技有限公司 | 一种页面爬取规则的配置方法及装置 |
CN110020044A (zh) * | 2017-09-22 | 2019-07-16 | 北京国双科技有限公司 | 一种爬虫的爬取方法及装置 |
CN110276039A (zh) * | 2019-06-27 | 2019-09-24 | 北京金山安全软件有限公司 | 页面元素的路径生成方法、装置和电子设备 |
CN110309386A (zh) * | 2018-02-28 | 2019-10-08 | 腾讯科技(深圳)有限公司 | 一种网页爬取的方法和装置 |
CN111914199A (zh) * | 2019-05-10 | 2020-11-10 | 腾讯科技(深圳)有限公司 | 一种页面元素过滤方法、装置、设备及存储介质 |
-
2020
- 2020-12-04 CN CN202011412538.5A patent/CN112417252B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120259833A1 (en) * | 2011-04-11 | 2012-10-11 | Vistaprint Technologies Limited | Configurable web crawler |
CN106250396A (zh) * | 2016-07-19 | 2016-12-21 | 厦门雅迅网络股份有限公司 | 一种图像标签自动生成系统及方法 |
CN110020044A (zh) * | 2017-09-22 | 2019-07-16 | 北京国双科技有限公司 | 一种爬虫的爬取方法及装置 |
CN110020068A (zh) * | 2017-09-26 | 2019-07-16 | 北京国双科技有限公司 | 一种页面爬取规则的配置方法及装置 |
CN107943838A (zh) * | 2017-10-30 | 2018-04-20 | 北京大数元科技发展有限公司 | 一种自动获取xpath生成爬虫脚本的方法及系统 |
CN107808000A (zh) * | 2017-11-13 | 2018-03-16 | 哈尔滨工业大学(威海) | 一种暗网数据采集与抽取系统及方法 |
CN110309386A (zh) * | 2018-02-28 | 2019-10-08 | 腾讯科技(深圳)有限公司 | 一种网页爬取的方法和装置 |
CN109783728A (zh) * | 2018-12-29 | 2019-05-21 | 安徽听见科技有限公司 | 页面爬虫规则更新方法及系统 |
CN111914199A (zh) * | 2019-05-10 | 2020-11-10 | 腾讯科技(深圳)有限公司 | 一种页面元素过滤方法、装置、设备及存储介质 |
CN110276039A (zh) * | 2019-06-27 | 2019-09-24 | 北京金山安全软件有限公司 | 页面元素的路径生成方法、装置和电子设备 |
Non-Patent Citations (1)
Title |
---|
戴西件: "SPSS如何在复杂数据库中筛选并删除特定重复数据", 《微信公众平台》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112417252B (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7398068B2 (ja) | ソフトウェアテスト | |
CN104252410B (zh) | 一种对页面中的控件进行测试的方法和设备 | |
CN108763274B (zh) | 访问请求的识别方法、装置、电子设备及存储介质 | |
EP3866028A2 (en) | Method and apparatus for constructing quality evaluation model, device and storage medium | |
US10452725B2 (en) | Web page recognizing method and apparatus | |
CN106991175B (zh) | 一种客户信息挖掘方法、装置、设备以及存储介质 | |
US9792370B2 (en) | Identifying equivalent links on a page | |
US8639559B2 (en) | Brand analysis using interactions with search result items | |
CN109308254A (zh) | 一种测试方法、装置及测试设备 | |
CN103870528A (zh) | 深度问题回答系统中的问题分类和特征映射的方法和系统 | |
US9020962B2 (en) | Interest expansion using a taxonomy | |
US20150161187A1 (en) | Evaluation of Nodes | |
US11567851B2 (en) | Mathematical models of graphical user interfaces | |
CN110674404A (zh) | 链接信息生成方法、装置、系统、存储介质及电子设备 | |
CN110276183B (zh) | 反向图灵验证方法及装置、存储介质、电子设备 | |
CN111930891A (zh) | 基于知识图谱的检索文本扩展方法及相关装置 | |
CN111127057B (zh) | 一种多维用户画像恢复方法 | |
CN112685618A (zh) | 用户特征识别方法、装置、计算设备及计算机存储介质 | |
CN110674033A (zh) | 处理代码的方法、装置、设备及存储介质 | |
CN112417252B (zh) | 爬虫路径确定方法、装置、存储介质与电子设备 | |
US20220284060A1 (en) | Question Answering Method and Apparatus Based on Knowledge Graph | |
CN115481025A (zh) | 自动化测试的脚本录制方法、装置、计算机设备及介质 | |
CN113378983A (zh) | 虚假评论检测方法、装置、存储介质与电子设备 | |
CN111125590B (zh) | 一种绘制热力图的方法及装置 | |
CN110059272B (zh) | 一种页面特征识别方法和装置 |
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 |