本发明属于网络通信技术领域,具体地来说,是一种网页元素采集方法、装置、终端与计算机可读存储介质。
背景技术:
随着互联网的发展,特别是c2c电子商务的兴起,个人网站和网店大量出现。个人站主或个人店主为了快速的实现网站数据或者填补商品信息的填充,开始越来越多的通过采集其它网站类似信息来填充自己网站或者店铺。网页数据采集成为一种应用日益广泛的互联网技术。
目前,网页数据采集的通用做法是,通过网络抓包的方式把整个网页的源码提取出来,然后分析网页源码,并通过正则表达式对网页源码进行匹配,最终得到想要的数据。
这种做法依赖于网页源码与正则表达式,属于面向技术人员的实现方式。对于作为非技术人员的个人站长和个人店主而言,技术门槛很高,难以实现对于网页数据的迅速采集。
技术实现要素:
为了克服现有技术的不足,本发明提供了一种网页元素采集方法、网页元素采集装置、终端与计算机可读存储介质,采用xpath路径表达式进行定位及面向用户的选择操作方式,降低非技术人员对于网页数据的迅速采集的实现门槛。
本发明的目的通过以下技术方案来实现:
一种网页元素采集方法,包括:
获取用户输入的需要采集的网页的网址,并在内置浏览器中打开所述网页;
获取用户点击的网页元素,显示与所述用户点击的网页元素对应的功能选项组,所述功能选项组包括至少一个可供选择的功能选项;
确定用户选择的功能选项;
生成与所述网页元素对应的xpath路径表达式,并生成与所述功能选项对应的执行步骤或执行与所述功能选项对应的操作,所述执行步骤用于被执行而实现对所述用户点击的网页元素的目标数据的采集,所述操作包括点击所述用户点击的网页元素和获取用户输入的文本。
作为上述技术方案的改进,所述功能选项与所述用户点击的网页元素所包含的标签类型相适应,所述标签类型包括a标签、img标签、input标签和其他标签,所述功能选项包括抓取所述网页元素的文本、抓取所述网页元素的innerhtml、抓取所述网页元素的outerhtml、抓取所述网页元素的超链接、抓取所述网页元素的图片地址、抓取所述网页元素的value值、循环遍历下拉选项、点击所述网页元素与输入文本中的一种或多种。
作为上述技术方案的进一步改进,当所述用户点击的网页元素所包含的标签类型为a标签时,所述功能选项为所述抓取所述网页元素的文本、所述抓取所述网页元素的innerhtml、所述抓取所述网页元素的outerhtml、所述抓取所述网页元素的超链接与点击所述网页元素中的一种或多种。
作为上述技术方案的进一步改进,当所述用户点击的网页元素所包含的标签类型为img标签时,所述功能选项为所述抓取该网页元素的outerhtml、所述抓取该网页元素的图片地址与所述点击该网页元素中的一种或多种。
作为上述技术方案的进一步改进,当所述用户点击的网页元素所包含的标签类型为input标签时,所述功能选项组为所述抓取该网页元素的outerhtml、所述抓取该网页元素的value值”、所述点击该网页元素与所述输入文本中的一种或多种;当所述用户点击的网页元素所包含的标签类型为select标签时,所述功能选项为所述循环遍历下拉选项。
作为上述技术方案的进一步改进,所述执行步骤包括:
根据所述xpath路径表达式定位至所述用户点击的网页元素;
获取所述用户点击的网页元素中与所述操作指令匹配的子节点;
获取所述子节点的信息,据此生成所述用户点击的网页元素的目标数据。
一种网页元素采集装置,包括:
网页打开模块,用于获取用户输入的需要采集的网页的网址,并在内置浏览器中打开所述网页;
选项显示模块,用于根据用户点击的网页元素显示对应的功能选项组,所述功能选项组包括至少一个可供选择的功能选项;
功能选项确定模块,用于确定用户选择的功能选项;
操作生成与执行模块,用于生成与所述网页元素对应的xpath路径表达式,并生成与所述功能选项对应的执行步骤或执行与所述功能选项对应的操作,所述执行步骤用于被执行而实现对所述用户点击的网页元素的目标数据的采集,所述操作包括点击所述用户点击的网页元素和获取用户输入的文本。
作为上述技术方案的改进,其还包括执行模块,用于根据所述xpath路径表达式定位后,获取所述用户点击的网页元素中与所述操作指令匹配的子节点的信息,从而生成所述用户点击的网页元素的目标数据。
一种终端,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器执行所述计算机程序以使所述终端实现以上任一项所述的网页元素采集方法。
一种计算机可读存储介质,其存储有所述终端所执行的计算机程序。
本发明的有益效果是:
通过本发明提供的网页加载方法、装置、终端与计算机可读存储介质,根据用户点击的网页元素而显示相应的功能选项组,通过功能选项组获取用户选择的操作指令,进而根据该操作指令确定具体的执行步骤,以执行该执行步骤而实现对用户在点击的网页元素中选定的目标数据的采集,采用xpath路径表达式方式进行网页元素的定位,将用户所需的采集操作封装为可供选择的功能选项组,具有实现门槛低、操作简便的优点。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本发明实施例1提供的网页元素采集方法的流程图;
图2是本发明实施例1提供的网页元素采集方法的执行步骤流程图;
图3是本发明实施例1提供的网页元素采集装置的结构示意图;
图4是本发明实施例1提供的终端的结构示意图。
主要元件符号说明:
100-网页元素采集装置,110-选项显示模块,120-路径生成模块,130-指令获取模块,140-步骤确定模块,150-执行模块,200-终端,210-存储器,220-处理器,230-输入单元,240-显示单元。
具体实施方式
为了便于理解本发明,下面将参照相关附图对网页元素采集方法、装置、终端与计算机可读存储介质进行更全面的描述。附图中给出了网页元素采集方法、装置、终端与计算机可读存储介质的优选实施例。但是,网页元素采集方法、装置、终端与计算机可读存储介质可以通过许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对网页元素采集方法、装置、终端与计算机可读存储介质的公开内容更加透彻全面。
需要说明的是,当元件被称为“固定于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。相反,当元件被称作“直接在”另一元件“上”时,不存在中间元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在网页元素采集方法、装置、终端与计算机可读存储介质的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
实施例1
请参阅图1,本实施例提供一种网页元素采集方法,该方法包括以下步骤:
s10:获取用户输入的需要采集的网页的网址,并在内置浏览器中打开所述网页。
s20:获取用户点击的网页元素,显示与所述用户点击的网页元素对应的功能选项组,功能选项组包括至少一个可供选择的功能选项。
其中,网页元素是网页的组成元素,包括图片、文字、视频、音频等多种类型。在html/xml网页中,网页元素包含多个子节点,每个子节点分别包含不同的信息,从而使网页元素成为一个具备完整信息的节点。用户点击网页元素时,该网页元素将被获取。根据获取到的网页元素,对应地显示不同的功能选项组,以便用户对功能选项组中的功能选项进行选择。用户选择的结果即对应于用户所需采集的具体数据,如网页元素的文本、注释、属性值等。
其中,功能选项组可以是选择框,也可以是选择菜单,还可以是其他可供选择的显示窗类型。功能选项包含一个或多个功能选项,每个功能选项对应于网页元素的某一具体数据的采集指令。
优选地,功能选项与所述用户点击的网页元素所包含的标签类型相适应。网页元素的标签即html标签,用于对网页元素进行定义和标记。换言之,包含不同类型html标签的网页元素,具有不同的数据信息类型,例如不同的属性、文本或其他数据信息。一般地,标签类型包括a标签、img标签、input标签和其他标签。
进一步优选,功能选项包括抓取所述网页元素的文本、抓取所述网页元素的innerhtml、抓取所述网页元素的outerhtml、抓取所述网页元素的超链接、抓取所述网页元素的图片地址、抓取所述网页元素的value值与循环遍历下拉选项、点击所述网页元素与输入文本中的一种或多种。
在一个示范性的实施例中,对应于包含a标签的网页元素的功能选项,可以是“抓取该网页元素的文本”、“抓取该网页元素的innerhtml”、“抓取该网页元素的outerhtml”、“抓取该网页元素的超链接”、“点击该网页元素”。
在一个示范性的实施例中,对应于包含img标签的网页元素的功能选项,可以是“抓取该网页元素的outerhtml”、“抓取该网页元素的图片地址”、“点击该网页元素”。
在一个示范性的实施例中,对应于包含input标签的网页元素的功能选项,可以是“抓取该网页元素的outerhtml”、“抓取该网页元素的value值”、“点击该网页元素”、“输入文本”。
在一个示范性的实施例中,对应于包含select标签的网页元素的功能选项,可以是“循环遍历下拉选项”。
在一个示范性的实施例中,对应于包含除上述示范例的标签外的其他标签的网页元素的功能选项,可以是“抓取该网页元素的文本”、“抓取该网页元素的innerhtml”、“抓取该网页元素的outerhtml”。
s30:确定用户选择的功能选项。换言之,获取用户所选择的功能选项,以确定用户所需采集的数据或所需执行的操作。
xpath,全称为xmlpathlanguage,即xml路径语言,适用于xml/html网页。xpath路径表达式,即用于实现对网页元素的快速定位。通过生成xpath路径表达式,从而为快速定位而进行数据采集作为准备。
s40:生成与所述网页元素对应的xpath路径表达式,并生成与所述功能选项对应的执行步骤或执行与所述功能选项对应的操作,所述执行步骤用于被执行而实现对所述用户点击的网页元素的目标数据的采集,所述操作包括点击所述用户点击的网页元素和获取用户输入的文本。换言之,当用户选择采集网页元素的数据时,自动生成执行步骤;当用户选择不采集网页元素的数据,而是执行其他操作时,直接执行相应操作。
请参阅图2,优选地,执行步骤s50包括:
s51:根据xpath路径表达式定位至所述用户点击的网页元素;
s52:获取所述用户点击的网页元素中与所述操作指令匹配的子节点。如前所述,网页元素包含至少一个子节点,遍历网页元素中的子节点而与所述操作指令匹配,从而获取到完全匹配的子节点。
s53:获取子节点的信息,据此生成所述用户点击的网页元素的目标数据。获取到匹配子节点后,即可对子节点中的信息进行抓取,该信息即为所述用户点击的网页元素的目标数据。
实施例2
请参阅图3,本实施例提供一种网页元素采集装置100,该装置包括:
网页打开模块110,用于获取用户输入的需要采集的网页的网址,并在内置浏览器中打开所述网页;
选项显示模块120,用于根据用户点击的网页元素显示对应的功能选项组,该功能选项组包括至少一个可供选择的功能选项;
功能选项确定模块130,用于确定用户选择的功能选项;
操作生成与执行模块140,用于生成与所述网页元素对应的xpath路径表达式,并生成与所述功能选项对应的执行步骤或执行与所述功能选项对应的操作,所述执行步骤用于被执行而实现对所述用户点击的网页元素的目标数据的采集,所述操作包括点击所述用户点击的网页元素和获取用户输入的文本。
优选地,其还包括执行模块150,用于根据xpath路径表达式定位后,获取所述用户点击的网页元素中与所述操作指令匹配的子节点的信息,从而生成所述用户点击的网页元素的目标数据。执行模块150可集成于网页元素采集装置100中,亦可独立设置于网页元素采集装置100之外。
实施例3
请参阅图4,本实施例提供一种终端200,该终端200包括存储器210以及处理器220,存储器210用于存储计算机程序,处理器220执行计算机程序以使终端200实现以上所述的网页元素采集方法。
其中,终端200包括不具备移动通信能力的终端设备(比如计算机、服务器等),亦包括移动终端(比如智能电话、平板电脑、车载电脑、智能穿戴设备等)。
存储器210可包括存储程序区和存储数据区。其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端200的使用所创建的数据(比如音频数据、备份文件等)等。此外,存储器210可以包括高速随机存取存储器,还可以包括非易失性存储器例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
优选地,终端200还包括输入单元230与显示单元240。其中,输入单元230用于接收用户输入的各项指令或参数(包括预设滚动方式、预设时间间隔与预设滚动次数),包括鼠标、键盘、触控面板及其他输入设备。显示单元240用于显示终端200的各种输出信息(包括网页页面、参数配置界面等),包括显示面板。
在此一并提供一种计算机可读存储介质,其存储有终端所执行的计算机程序。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。
也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。
也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。