CN114764462A - 一种数据抓取方法及装置 - Google Patents
一种数据抓取方法及装置 Download PDFInfo
- Publication number
- CN114764462A CN114764462A CN202011644047.3A CN202011644047A CN114764462A CN 114764462 A CN114764462 A CN 114764462A CN 202011644047 A CN202011644047 A CN 202011644047A CN 114764462 A CN114764462 A CN 114764462A
- Authority
- CN
- China
- Prior art keywords
- target
- website page
- data
- website
- crawler
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开提供一种数据抓取方法及装置,涉及网络应用技术领域,能够解决目前的数据抓取方法效率较低且容易出错的问题。具体技术方案为:配置爬虫模板并获取待访问的网站信息,爬虫模块用于设置目标数据库的数据库结构;根据待访问的网站信息加载对应的目标网站页面;获取用户对目标网站页面的选取操作,并根据选取操作确定目标位置;根据目标位置获取目标网站页面中相应内容的文档结构,并根据文档结构生成XPath表达式;调用爬虫程序,并将爬虫程序根据XPath表达式爬取的所述目标网站页面的目标数据存储在目标数据库中。本发明用于进行数据抓取。
Description
技术领域
本公开涉及网络应用技术领域,尤其涉及一种数据抓取方法及装置。
背景技术
网络爬虫是一种自动提取网页内容的程序,它按照一定的规则抓取互联网信息。网络爬虫一般从一个或若干个初始网页的URL(Uniform Resource Locator,统一资源定位符)开始,获得初始网页上的内容,并继续抽取满足规则的新的URL,将其放入队列,周而复始,直到完成满足系统设定的一定条件时停止。
现有技术中,掌握了XPath语法的技术人员,结合已有的工作经验,解读页面文档结构,编写XPath表达式,爬虫程序用XPath表达式解析页面,将数据入库。但这种方法爬虫配置工作量大,要求配置人员必须了解XPath语法以及html技术且易出错。
发明内容
本公开实施例提供一种数据抓取方法及装置,能够解决目前的数据抓取方法效率较低且容易出错的问题。所述技术方案如下:
根据本公开实施例的第一方面,提供一种数据抓取方法,该方法包括:
配置爬虫模板并获取待访问的网站信息,所述爬虫模块用于设置目标数据库的数据库结构;根据所述待访问的网站信息加载对应的目标网站页面;获取用户对所述目标网站页面的选取操作,并根据所述选取操作确定目标位置;根据所述目标位置获取所述目标网站页面中相应内容的文档结构,并根据所述文档结构生成XPath表达式;调用爬虫程序,并将所述爬虫程序根据所述XPath表达式爬取的所述目标网站页面的目标数据存储在所述目标数据库中。
本申请通过配置爬虫模板并获取待访问的网站信息,根据待访问的网站信息加载对应的网站页面,获取用户对待爬虫的网站页面的选取操作,并根据选取操作确定目标位置,根据目标位置获取网站页面中相应内容的文档结构,并根据文档结构生成XPath表达式,最后调用爬虫程序,并将所述爬虫程序根据XPath表达式爬取的目标网站页面的目标数据存储在目标数据库中。与现有技术相比,本申请主要通过反向代理技术,将待爬虫的网站加载到自身系统,解决浏览器跨域不能获取非本系统文档结构的问题,从而实现点击划词的方式解析网页文档,生成XPath表达式。可通过所见即所得方式,快速,准确,及时的获取到页面数据,并可通过交互方式,测试表达式的正确与否。
在一个实施例中,所述根据所述待访问的网站信息加载对应的目标网站页面,包括:
将所述待访问的网站信息发送给代理服务器,以便所述代理服务器将所述待访问的网站信息发送给目标服务器;
接收所述代理服务器发送的目标网站页面,所述目标网站页面为所述目标服务器反馈给所述代理服务器的。
在一个实施例中,所述根据所述目标位置获取所述目标网站页面中相应内容的文档结构,并根据所述文档结构生成XPath表达式,包括:
根据所述目标位置获取所述目标网站页面中相应内容;
根据所述目标网站页面中相应内容,使用递归方法,查找所述目标网站页面中相应内容的节点顺序;
根据所述节点顺序得到所述目标网站页面中相应内容的文档结构;
根据所述文档结构生成XPath表达式。
在一个实施例中,在所述调用爬虫程序,并将所述爬虫程序根据所述XPath表达式爬取的所述目标网站页面的目标数据存储在所述目标数据库中之后,所述方法还包括:
检测所述目标数据和预设结果是否一致,若所述目标数据与预设结果不一致,则检测是否配置正则表达式;
若没有配置正则表达式,则获取用户对所述XPath表达式的调整操作,得到调整后的XPath表达式;
采用调整后的XPath表达式爬取的待爬虫的网站页面的数据,直至所述目标数据和预设结果一致。
在一个实施例中,所述方法还包括:检测所述目标数据和预设结果是否一致,若所述目标数据与预设结果不一致,则配置正则表达式,并采用所述正则表达式对所述XPath表达式爬取的目标网站页面的目标数据进行二次匹配。
根据本公开实施例的第二方面,提供一种数据抓取装置,该装置包括:
配置模块,用于配置爬虫模板并获取待访问的网站信息,所述爬虫模块用于设置目标数据库的数据库结构;
加载模块,用于根据所述待访问的网站信息加载对应的目标网站页面;
获取模块,获取用户对所述目标网站页面的选取操作,并根据所述选取操作确定目标位置;
处理模块,用于根据所述目标位置获取所述网站页面中相应内容的文档结构,并根据所述文档结构生成XPath表达式;
调用模块,用于调用爬虫程序,并将所述爬虫程序根据所述XPath表达式爬取的所述目标网站页面的目标数据存储在所述目标数据库中。
在一个实施例中,所述加载模块还用于:
将所述待访问的网站信息发送给代理服务器,以便所述代理服务器将所述待访问的网站信息发送给目标服务器;
接收所述代理服务器发送的目标网站页面,所述目标网站页面为所述目标服务器反馈给所述代理服务器的。
在一个实施例中,所述处理模块还用于:
根据所述目标位置获取所述目标网站页面中相应内容;
根据所述目标网站页面中相应内容,使用递归方法,查找所述网站页面中相应内容的节点顺序;
根据所述节点顺序得到所述目标网站页面中相应内容的文档结构;
根据所述文档结构生成XPath表达式。
在一个实施例中,所述装置还包括检测模块,所述检测模块用于:
检测所述目标数据和预设结果是否一致,若所述目标数据与预设结果不一致,则检测是否配置正则表达式;
若没有配置正则表达式,则获取用户对所述XPath表达式的调整操作,得到调整后的XPath表达式;
采用调整后的XPath表达式爬取的所述目标网站页面的数据,直至所述目标数据和预设结果一致。
在一个实施例中,所述检测模块还用于:
检测所述目标数据和预设结果是否一致,若所述目标数据与预设结果不一致,则配置正则表达式,并采用所述正则表达式对所述XPath表达式爬取的待爬虫的所述目标网站页面的目标数据进行二次匹配。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是本公开实施例提供的一种数据抓取方法的流程图;
图2是本公开实施例提供的一种待访问网站信息的示意图;
图3是本公开实施例提供的一种数据抓取装置的结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的系统和方法的例子。
本公开实施例提供一种数据抓取方法,如图1所示,该方法包括以下步骤:
101、配置爬虫模板并获取待访问的网站信息。
其中,爬虫模块用于设置目标数据库的数据库结构,数据库结构设置好之后,爬虫程序将结果写入与之对应的数据库表中。
其中,可以根据业务需求来创建爬虫模板,根据线下调研来获取待访问的网站信息,并形成网站列表,具体的待访问网站信息如图2所示。
具体的,将调研好的网站列表,逐个新增爬虫配置,并将网站列表中的网站链接输入到配置项“网站入口链接”。
102、根据待访问的网站信息加载对应的目标网站页面。
在一个实施例中,根据待访问的网站信息加载对应的网站页面,包括:
将待访问的网站信息发送给代理服务器,以便代理服务器将待访问的网站信息发送给目标服务器;
接收代理服务器发送的目标网站页面,目标网站页面为目标服务器反馈给代理服务器的。
在实际应用中,将网站列表中的网站链接输入到配置项“网站入口链接”之后,点击“生成表达式”,系统将原有网站代理为系统自身的一个页面,并展示给配置人员。
103、获取用户目标网站页面的选取操作,并根据选取操作确定目标位置。
具体的,配置人员根据定义好的爬虫模板,在加载的待爬虫网站页面中点击选取页面内容,程序根据点击的位置确定目标位置。
104、根据目标位置获取目标网站页面中相应内容的文档结构,并根据文档结构生成XPath表达式。
在一个实施例中,根据目标位置获取网站页面中相应内容的文档结构,并根据文档结构生成XPath表达式,包括:
根据目标位置获取网站页面中相应内容,根据网站页面中相应内容,使用递归方法,查找网站页面中相应内容的节点顺序;根据节点顺序得到网站页面中相应内容的文档结构,根据文档结构生成XPath表达式。
具体的,程序根据点击的位置确定目标位置之后,使用递归方法,逐级向上寻找父节点,直到找到根节点为止,按照节点的顺序,生成XPath表达式。
105、调用爬虫程序,并将爬虫程序根据XPath表达式爬取的目标网站页面的目标数据存储在目标数据库中。
具体的,任务调度系统,调度任务执行器,任务执行器调用爬虫程序,爬虫程序根据配置的爬虫以及爬虫配置项,爬取与之对应的网站数据,并将原来网页非结构化数据转化为结构化数据后存储在目标数据库中。
在步骤105之后,方法还包括:检测目标数据和预设结果是否一致,若目标数据与预设结果不一致,则检测是否配置正则表达式;
若没有配置正则表达式,则获取用户对所述XPath表达式的调整操作,得到调整后的XPath表达式;
采用调整后的XPath表达式爬取的待爬虫的网站页面的数据,直至目标数据和预设结果一致。
在一个实施例中,方法还包括:检测目标数据和预设结果是否一致,若目标数据与预设结果不一致,则配置正则表达式,并采用正则表达式对XPath表达式爬取的待爬虫的网站页面的目标数据进行二次匹配。
在实际应用中,点击测试按钮,可根据生成的XPath表达式,快速的测试结果是否和预期一致,如果不一致,可以对表达式进行微调。如果遇到XPath表达式,无法达到预期的结果,则可以通过配置正则表达式,在XPath表达式解析的内容中,进行二次匹配,从而使结果更加的准确。
待表达式配置完成之后,可点击“测试按钮”来直接请求爬虫程序,爬虫程序将爬取的数据交给本系统,本系统将数据展示给操作人员,对配置的整体结果进行测试,可以及时的查看界面是否和预期一致。
本申请通过配置爬虫模板并获取待访问的网站信息,根据待访问的网站信息加载对应的网站页面,根据所爬虫模板获取用户对待爬虫的网站页面的选取操作,并根据选取操作确定目标位置,根据目标位置获取网站页面中相应内容的文档结构,并根据文档结构生成XPath表达式,最后调用爬虫程序,并将所述爬虫程序根据XPath表达式爬取的目标网站页面的目标数据存储在目标数据库中。与现有技术相比,本申请主要通过反向代理技术,将待爬虫的网站加载到自身系统,解决浏览器跨域不能获取非本系统文档结构的问题,从而实现点击划词的方式解析网页文档,生成XPath表达式。可通过所见即所得方式,快速,准确,及时的获取到页面数据,并可通过交互方式,测试表达式的正确与否。
本公开实施例还提供了一种数据抓取装置,如图3所示,该装置30包括:配置模块301,用于配置爬虫模板并获取待访问的网站信息,爬虫模块用于设置目标数据库的数据库结构;
加载模块302,用于根据待访问的网站信息加载对应的目标网站页面;
获取模块303,用于获取用户对目标网址页面的选取操作,并根据选取操作确定目标位置;
处理模块304,用于根据目标位置获取目标网站页面中相应内容的文档结构,并根据文档结构生成XPath表达式;
调用模块305,用于调用爬虫程序,并将爬虫程序根据XPath表达式爬取的目标网站页面的目标数据存储在所述目标数据库中。
在一个实施例中,加载模块304还用于:将待访问的网站信息发送给代理服务器,以便代理服务器将待访问的网站信息发送给目标服务器;
接收代理服务器发送的待爬虫的网站页面,待爬虫的网站页面为目标服务器反馈给代理服务器的。
在一个实施例中,处理模块304还用于:根据目标位置获取网站页面中相应内容;根据网站页面中相应内容,使用递归方法,查找所述网站页面中相应内容的节点顺序;根据节点顺序得到网站页面中相应内容的文档结构;根据文档结构生成XPath表达式。
在一个实施例中,所述装置还包括检测模块306,检测模块306用于:
检测目标数据和预设结果是否一致,若目标数据与预设结果不一致,则检测是否配置正则表达式;
若没有配置正则表达式,则获取用户对XPath表达式的调整操作,得到调整后的XPath表达式;
采用调整后的XPath表达式爬取的待爬虫的网站页面的数据,直至目标数据和预设结果一致。
在一个实施例中,检测模块306还用于:
检测目标数据和预设结果是否一致,若目标数据与预设结果不一致,则配置正则表达式,并采用正则表达式对XPath表达式爬取的待爬虫的网站页面的目标数据进行二次匹配。
基于上述实施例中所描述的方法,本公开实施例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(英文:Read Only Memory,ROM)、随机存取存储器(英文:Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储装置等。该存储介质上存储有计算机指令,用于执行上述实施例中所描述的数据抓取方法,此处不再赘述。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种数据抓取方法,其特征在于,所述方法包括:
配置爬虫模板并获取待访问的网站信息,所述爬虫模块用于设置目标数据库的数据库结构;
根据所述待访问的网站信息加载对应的目标网站页面;
获取用户对所述目标网站页面的选取操作,并根据所述选取操作确定目标位置;
根据所述目标位置获取所述目标网站页面中相应内容的文档结构,并根据所述文档结构生成XPath表达式;
调用爬虫程序,并将所述爬虫程序根据所述XPath表达式爬取的所述目标网站页面的目标数据存储在所述目标数据库中。
2.根据权利要求1所述的方法,其特征在于,所述根据所述待访问的网站信息加载对应的目标网站页面,包括:
将所述待访问的网站信息发送给代理服务器,以便所述代理服务器将所述待访问的网站信息发送给目标服务器;
接收所述代理服务器发送的目标网站页面,所述目标网站页面为所述目标服务器反馈给所述代理服务器的。
3.根据权利要求1所述的方法,其特征在于,所述根据所述目标位置获取所述目标网站页面中相应内容的文档结构,并根据所述文档结构生成XPath表达式,包括:
根据所述目标位置获取所述目标网站页面中相应内容;
根据所述目标网站页面中相应内容,使用递归方法,查找所述目标网站页面中相应内容的节点顺序;
根据所述节点顺序得到所述目标网站页面中相应内容的文档结构;
根据所述文档结构生成XPath表达式。
4.根据权利要求1所述的方法,其特征在于,在所述调用爬虫程序,并将所述爬虫程序根据所述XPath表达式爬取的所述目标网站页面的目标数据存储在所述目标数据库中之后,所述方法还包括:
检测所述目标数据和预设结果是否一致,若所述目标数据与预设结果不一致,则检测是否配置正则表达式;
若没有配置正则表达式,则获取用户对所述XPath表达式的调整操作,得到调整后的XPath表达式;
采用调整后的XPath表达式爬取所述目标网站页面的数据,直至所述目标数据和预设结果一致。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
检测所述目标数据和预设结果是否一致,若所述目标数据与预设结果不一致,则配置正则表达式,并采用所述正则表达式对所述XPath表达式爬取的所述目标网站页面的目标数据进行二次匹配。
6.一种数据抓取装置,其特征在于,所述装置包括:
配置模块,用于配置爬虫模板并获取待访问的网站信息,所述爬虫模块用于设置目标数据库的数据库结构;
加载模块,用于根据所述待访问的网站信息加载对应的目标网站页面;
获取模块,用于获取用户对所述目标网站页面的选取操作,并根据所述选取操作确定目标位置;
处理模块,用于根据所述目标位置获取所述目标网站页面中相应内容的文档结构,并根据所述文档结构生成XPath表达式;
调用模块,用于调用爬虫程序,并将所述爬虫程序根据所述XPath表达式爬取的所述目标网站页面的目标数据存储在所述目标数据库中。
7.根据权利要求6所述的装置,其特征在于,所述加载模块还用于:
将所述待访问的网站信息发送给代理服务器,以便所述代理服务器将所述待访问的网站信息发送给目标服务器;
接收所述代理服务器发送的目标网站页面,所述目标网站页面为所述目标服务器反馈给所述代理服务器的。
8.根据权利要求6所述的装置,其特征在于,所述处理模块还用于:
根据所述目标位置获取所述目标网站页面中相应内容;
根据所述目标网站页面中相应内容,使用递归方法,查找所述目标网站页面中相应内容的节点顺序;
根据所述节点顺序得到目标所述网站页面中相应内容的文档结构;
根据所述文档结构生成XPath表达式。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括检测模块,所述检测模块用于:
检测所述目标数据和预设结果是否一致,若所述目标数据与预设结果不一致,则检测是否配置正则表达式;
若没有配置正则表达式,则获取用户对所述XPath表达式的调整操作,得到调整后的XPath表达式;
采用调整后的XPath表达式爬取的所述目标网站页面的数据,直至所述目标数据和预设结果一致。
10.根据权利要求9所述的装置,其特征在于,所述检测模块还用于:
检测所述目标数据和预设结果是否一致,若所述目标数据与预设结果不一致,则配置正则表达式,并采用所述正则表达式对所述XPath表达式爬取的所述目标网站页面的目标数据进行二次匹配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011644047.3A CN114764462A (zh) | 2020-12-31 | 2020-12-31 | 一种数据抓取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011644047.3A CN114764462A (zh) | 2020-12-31 | 2020-12-31 | 一种数据抓取方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114764462A true CN114764462A (zh) | 2022-07-19 |
Family
ID=82364309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011644047.3A Pending CN114764462A (zh) | 2020-12-31 | 2020-12-31 | 一种数据抓取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114764462A (zh) |
-
2020
- 2020-12-31 CN CN202011644047.3A patent/CN114764462A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9507700B1 (en) | Generic method for automated software testing | |
US7536389B1 (en) | Techniques for crawling dynamic web content | |
CN102073726B (zh) | 搜索引擎系统的结构化数据的引入方法和装置 | |
US7672938B2 (en) | Creating search enabled web pages | |
CN108628748B (zh) | 自动化测试管理方法和自动化测试管理系统 | |
CN108509339A (zh) | 基于浏览器和思维导图的测试用例生成方法、装置及设备 | |
CN108304410A (zh) | 一种异常访问页面的检测方法、装置及数据分析方法 | |
CN109840298B (zh) | 大规模网络数据的多信息来源采集方法和系统 | |
US10169037B2 (en) | Identifying equivalent JavaScript events | |
CN108399125B (zh) | 自动化测试方法、装置、计算机设备和存储介质 | |
CN111679976A (zh) | 一种页面对象的查找方法及装置 | |
JP2004178263A (ja) | Webサーバ、Javaサーブレットの機能を有するWebサーバ、およびコンピュータプログラム | |
CN105721519B (zh) | 一种网页数据采集方法、装置及系统 | |
CN112256944A (zh) | 基于JMeter的网站数据自动爬取方法 | |
CN111694550A (zh) | 一种页面显示控制方法、装置及系统 | |
EP1190475A1 (en) | User support system and method | |
CN111881043A (zh) | 页面测试方法、装置、存储介质和处理器 | |
CN109246069B (zh) | 网页登录方法、装置和可读存储介质 | |
CN114567543B (zh) | 一种问题接口的定位方法、装置、电子设备及存储介质 | |
CN116340169A (zh) | 一种页面元素的XPath路径检测方法及装置 | |
CN114764462A (zh) | 一种数据抓取方法及装置 | |
CN115481025A (zh) | 自动化测试的脚本录制方法、装置、计算机设备及介质 | |
CN113886216B (zh) | 接口测试和工具配置方法、装置、电子设备和存储介质 | |
CN114817393B (zh) | 数据抽取和清洗方法、装置及存储介质 | |
CN112417252B (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 |