CN111931024A - 一种针对动态网页的爬取方法、装置及电子设备 - Google Patents
一种针对动态网页的爬取方法、装置及电子设备 Download PDFInfo
- Publication number
- CN111931024A CN111931024A CN202010661854.XA CN202010661854A CN111931024A CN 111931024 A CN111931024 A CN 111931024A CN 202010661854 A CN202010661854 A CN 202010661854A CN 111931024 A CN111931024 A CN 111931024A
- Authority
- CN
- China
- Prior art keywords
- target page
- data
- page
- target
- dynamic data
- 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
- 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/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- 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/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供了一种针对动态网页的爬取方法、装置及电子设备,应用于计算机技术领域。该爬取方法包括:获取待爬取的目标页面对应的应用程序接口API,所述目标页面对应的API为用于从所述目标页面对应的数据库中调用动态数据的应用程序接口,所述动态数据为所述目标页面中实时更新的数据;通过访问所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据。可见,本方案,通过所述目标页面对应的API,能够直接从所述目标页面对应的数据库中调用动态数据,简化了获取动态数据的操作过程,解决了在获取动态页面的页面数据时,由于操作过程复杂造成的效率较低的问题。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种针对动态网页的爬取方法、装置及电子设备。
背景技术
动态网页是目前应用较多的一种网页。为了方便对动态网页所包含的页面数据进行分析,需要先对动态网页进行爬取,以获取所需的页面数据。
现有技术中,针对动态页面进行爬取时,获取全球资源定位器(Uniform ResourceLocator,URL),根据URL访问待爬取的动态页面,并获取待爬取的动态页面的页面数据对应的指定代码,将页面数据对应的指定代码进行解析,得到页面数据。
然而,现有技术在获取动态页面的页面数据时,需要先获取待爬取的动态页面的页面数据对应的指令代码,将页面数据对应的指令代码进行解析,才能得到页面数据,操作过程较为复杂,页面数据获取效率较低。
发明内容
本发明实施例的目的在于提供一种针对动态网页的爬取方法、装置及电子设备,用以解决在获取动态页面的页面数据时,由于操作过程复杂造成的页面数据获取效率较低的问题。具体技术方案如下:
第一方面,本发明实施例提供了一种针对动态网页的爬取方法,所述方法包括:
获取待爬取的目标页面对应的应用程序接口API,所述目标页面对应的API为用于从所述目标页面对应的数据库中调用动态数据的应用程序接口,所述动态数据为所述目标页面中实时更新的数据;
通过访问所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据。
可选地,所述方法还包括:
获取所述目标页面的网页地址;
通过所述网页地址,获取所述目标页面的静态数据对应的目标代码,所述目标代码为所述静态数据写入所述目标页面时对应的指令代码;
对所述目标代码进行解析,得到所述目标代码对应的静态数据。
可选地,所述通过访问所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据,包括:
确定所述动态数据的嵌入方式,所述嵌入方式为所述动态数据嵌入所述目标页面的方式;
基于所述嵌入方式,通过访问所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据。
可选地,所述嵌入方式包括:基于JavaScript的第一嵌入方式或基于iframe的第二嵌入方式;所述JavaScript为一种开发Web页面的脚本语言,所述iframe为内联框架;
所述基于所述嵌入方式,通过访问所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据,包括:
当所述嵌入方式包括第一嵌入方式时,模拟浏览器访问所述目标页面对应的API,得到所述动态数据;
当所述嵌入方式包括第二嵌入方式时,模拟浏览器访问所述目标页面对应的API,得到所述目标页面当前的动态数据,对所述目标页面进行翻页,并在翻页后通过访问所述目标页面对应的API,得到所述目标页面被翻页后的动态数据。
可选地,在通过所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据之后,所述方法还包括:
判断所述动态数据是否获取成功;
若判断结果为否,判断预设的计数器记录的错误次数是否达到预定次数,如果是,输出错误日志,并结束;如果否,在间隔预定时间后,继续通过所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据。
第二方面,本发明实施例提供了一种针对动态网页的爬取装置,包括:
第一获取模块,用于获取待爬取的目标页面对应的应用程序接口API,所述目标页面对应的API为用于从所述目标页面对应的数据库中调用动态数据的应用程序接口,所述动态数据为所述目标页面中实时更新的数据;
第二获取模块,用于通过访问所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据。
可选地,所述装置还包括:
第三获取模块,用于获取所述目标页面的网页地址;通过所述网页地址,获取所述目标页面的静态数据对应的目标代码,所述目标代码为所述静态数据写入所述目标页面时对应的指令代码;对所述目标代码进行解析,得到所述目标代码对应的静态数据。
可选地,所述第二获取模块包括:
数据确定子模块,用于确定所述动态数据的嵌入方式,所述嵌入方式为所述动态数据嵌入所述目标页面的方式;
数据获取子模块,用于基于所述嵌入方式,通过访问所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据。
第三方面,本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现一种针对动态网页的爬取方法的步骤。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现一种针对动态网页的爬取方法的步骤。
本发明实施例有益效果:
本发明实施例提供的一种针对动态网页的爬取方法中,获取待爬取的目标页面对应的应用程序接口API,所述目标页面对应的API为用于从所述目标页面对应的数据库中调用动态数据的应用程序接口,所述动态数据为所述目标页面中实时更新的数据;通过访问所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据。可见,本方案,通过所述目标页面对应的API,能够直接从所述目标页面对应的数据库中调用动态数据,简化了获取动态数据的操作过程,使得动态数据获取效率大大提升。因此,通过本方案可以解决在获取动态页面的页面数据时,由于操作过程复杂造成的页面数据获取效率较低的问题。
另外,本发明实施例所提供的爬取方法可以适用于爬取不同类型的页面的页面数据;并且,由于通过设置异常处理机制,可以规避大量的非主观的数据爬取错误,保证数据爬取的稳定和可靠性。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明的一种针对动态网页的爬取方法的流程图;
图2为本发明的一种针对动态网页的爬取方法的另一流程图;
图3为本发明的一种针对动态网页的爬取装置的结构示意图;
图4为本发明的一种针对动态网页的爬取装置的另一结构示意图;
图5为本发明的一种电子设备的结构示意图;
图6为本发明的动态数据的获取流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术中获取动态页面的页面数据时,由于操作过程复杂造成的页面数据获取效率较低的问题,本发明提供了一种针对动态网页的爬取方法、装置及电子设备。
下面首先对本发明实施例提供的一种针对动态网页的爬取方法进行介绍。
本发明实施例所提供的一种针对动态网页的爬取方法可以应用于电子设备中。在具体应用中,电子设备可以为:智能手机、平板电脑、笔记本电脑、台式电脑等,这都是合理的。具体而言,实现发明实施例所提供的一种针对动态网页的爬取方法的执行主体可以为运行于电子设备中的爬虫装置,该爬虫装置即为爬虫程序,通过在电子设备中运行爬虫装置,可以爬取指定的网页的页面数据。
本发明实施例中的动态网页为实时更新数据的网页,例如:火车票的购票网页、展示实时交通的网页或者展示飞机延误情况的网页等,这都是合理的。
如图1所示,本发明实施例所提供的一种针对动态网页的爬取方法,可以包括如下步骤:
S101,获取待爬取的目标页面对应的API;
所述目标页面对应的API(Application Program Interface,应用程序接口)为用于从所述目标页面对应的数据库中调用动态数据的应用程序接口,所述动态数据为所述目标页面中实时更新的数据。另外,目标页面可以为任一动态网页,其中,每一动态页面至少具有一个用于从该动态页面对应的数据库中调用动态数据的接口,也就是,目标页面对应的API的数量可以为一个或多个;另外,不同动态网页对应的API可以完全不同,或者部分不同,这都是合理的。
并且,获取待爬取的目标页面对应的API的方式可以存在多种。示例性的,在一种实现方式中,获取待爬取的目标页面对应的API的实现方式可以包括:输出用于指示管理人员输入API的交互界面,获取通过人机交互界面输入的API,作为待爬取的目标页面对应的API。其中,管理人员获取任一目标页面对应的API的方式包括:管理人员通过浏览器访问该目标页面,在访问后,调出该目标页面的指令代码,从指令代码中分析得到该目标页面对应的API。
另外一种实现方式,采用特定分析工具获取目标页面的指令代码,从指令代码中分析得到目标页面页面对应的API,并传递给执行主体,从而执行主体可以获取到目标页面对应的API。
S102,通过访问所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据。
在获得所述目标页面对应的API后,由于所述目标页面对应的API是用于从所述目标页面对应的数据库中调用动态数据的接口,那么,针对所述目标页面的动态数据而言,可以通过访问所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据。可以理解的是,目标页面为动态页面,而动态页面中通常既存在动态数据,也存在静态数据,对于从目标页面中获取静态数据的实现方式,本实施例不做限定。
示例性的,在一种实现方式中,爬虫装置可以访问目标页面对应的API,从而从目标页面对应的数据库中,调用目标页面所包含的动态数据,以得到目标页面对应的动态数据。
本发明实施例提供的一种针对动态网页的爬取方法中,获取待爬取的目标页面对应的应用程序接口API,所述目标页面对应的API为用于从所述目标页面对应的数据库中调用动态数据的应用程序接口,所述动态数据为所述目标页面中实时更新的数据;通过访问所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据。可见,本方案,通过所述目标页面对应的API,能够直接从所述目标页面对应的数据库中调用动态数据,简化了获取动态数据的操作过程,使得动态数据获取效率大大提升。因此,通过本方案可以解决在获取动态页面的页面数据时,由于操作过程复杂造成的页面数据获取效率较低的问题。
可选地,在S101-S102的基础上,如图2所示,本发明实施例所提供的一种针对动态网页的爬取方法,还可以包括如下步骤:
S103,获取所述目标页面的网页地址;
可以理解的是,目标页面的页面数据通常可以既包括动态数据也包括静态数据。若目标页面中,既包括动态数据也包括静态数据,当对静态数据进行获取时,可以获取所述目标页面的网页地址。
静态数据是指目标页面中长时间(通常以天为计量单位)保持不变的数据。对于目标页面中的静态数据的爬取可以分为单页面爬取与跨页面爬取两类。单页面爬取表示所有需要的静态数据集中在一个全球资源定位器(Uniform Resource Locator,URL)指向的目标页面中,即一个网页地址指向的目标页面中;跨页面爬取表示所需静态数据需要从目标页面,以及目标页面中包含的多个其他URL指向的多个页面中获取。
示例性的,在一种实现方式中,获取所述目标页面的网页地址的实现方式可以为:管理人员将目标页面的网页地址进行复制,并输入至执行主体,以得到所述目标页面的网页地址。
S104,通过所述网页地址,获取所述目标页面的静态数据对应的目标代码,所述目标代码为所述静态数据写入所述目标页面时对应的指令代码;
可以理解的是,静态数据通过指令代码写入目标页面,示例性的,指令代码为HTML(Hyper Text Markup Language)指令代码。
示例性的,通过所述网页地址,获取所述目标页面的静态数据对应的目标代码的一种实现方式可以为:通过模拟浏览器访问目标页面的网页地址,获取目标页面的HTML指令代码,以得到所述目标页面的静态数据对应的目标代码。
S105,对所述目标代码进行解析,得到所述目标代码对应的静态数据。
具体而言,对所述目标代码进行解析的实现方式可以为现有技术中任一种能够解析出目标代码的方式,在此不做限定。通过将目标代码进行解析,能够得到所述目标代码对应的静态数据。
可以理解的是,在本发明实施例中,当获取到目标页面的静态数据或动态数据后,可以根据需要,对静态数据或动态数据做进一步筛选、删除等处理操作,这都是合理的。
本发明实施例提供的一种针对动态网页的爬取方法中,通过访问目标页面对应的API获取目标页面的动态数据,而通过目标页面的网页地址获取目标页面的静态数据,从而得到目标页面中所有数据。可见,本方案,目标页面对应的API,能够直接从所述目标页面对应的数据库中调用动态数据,简化了获取动态数据的操作过程,使得动态数据的获取效率大大得到提升;并且,解决了在获取动态页面的页面数据时,由于操作过程复杂造成的效率较低的问题。另外,基于目标页面的网页地址所得到关于静态数据的目标代码,可以得到目标页面的静态数据,从而在较高的数据获取效率的前提下,获取目标页面中所包含的所有数据。
另外,考虑到动态页面中动态数据的嵌入方式可以存在多种,那么,在基于API获取动态页面的动态数据时,不同的嵌入方式下,动态数据获取的具体实现方式可以不同。基于该种处理思想,可选地,在一种实现方式中,通过访问所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据,包括:
确定所述动态数据的嵌入方式,所述嵌入方式为所述动态数据嵌入所述目标页面的方式;
基于所述嵌入方式,通过访问所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据。
示例性的,在一种实现方式中,确定所述动态数据的嵌入方式的实现方式可以包括:管理人员通过浏览器访问目标页面,判断目标页面中的动态数据的嵌入方式,并将嵌入方式传递至执行主体,从而得到动态数据的嵌入方式。
示例性的,所述嵌入方式包括:基于JavaScript的第一嵌入方式或基于iframe的第二嵌入方式,所述JavaScript为一种开发Web页面的脚本语言,所述iframe为内联框架;所述基于所述嵌入方式,通过访问所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据,可以包括:
当所述嵌入方式包括第一嵌入方式时,模拟浏览器访问所述目标页面对应的API,得到所述动态数据;
当所述嵌入方式包括第二嵌入方式时,模拟浏览器访问所述目标页面对应的API,得到所述目标页面当前的动态数据,对所述目标页面进行翻页,并在翻页后通过访问所述目标页面对应的API,得到所述目标页面被翻页后的动态数据。为了防止遭到反扒程序的误伤,爬虫装置通过模拟浏览器对目标页面对应的API进行访问,其中,模拟浏览器访问目标API可以采用现有技术实现,在此不做赘述。
另外,对目标页面进行翻页可以通过现有技术实现,在此不做赘述。
可选地,在一种实现方式中,在通过访问所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据之后,所述方法还包括:
判断所述动态数据是否获取成功;
若判断结果为否,判断预设的计数器记录的错误次数是否达到预定次数,如果是,输出错误日志,并结束;如果否,在间隔预定时间后,继续通过所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据。
由于目标页面运行不稳定、维护、目标网页的结构内容或重大更新,或者受反扒机制的误伤等原因,可能会导致爬虫装置多次获取动态数据失败,为了提高爬虫装置获取动态数据的成功率,可以在结束爬取动态数据前,判断所述动态数据是否获取成功。
可以理解的是,目标网页由于运行不稳定、维护等原因,某些时刻可能处于怠机状态;同时,反扒机制也可能将爬虫装置认定为恶意爬虫,阻断其运行。因此,为提高获取到动态数据的概率,可以在爬虫装置运行前,预先设置间隔时间,在获取一次数据后,至少经过该间隔时间才能进行第二次数据爬取过程。
具体而言,通过设置预定次数,并利用预设的计数器记录错误次数,判断预设的计数器记录的错误次数是否达到预定次数,如果是,输出错误日志,并结束获取所述动态数据。可以理解的是,若连续多次出现获取动态数据失败的情况,则爬虫装置将记录失败信息,并输出错误日志。此外,还可以通过邮件的形式通知管理人员,方便进行人工维护。
另外,由于错误次数可以存在多次,因此,设置的预定次数不小于1,且在进行获取初始数据之前,计数器为0,这都是合理的。
可选地,在一种实现方式中,所述方法还包括:
在获取到所述动态数据和/或所述静态数据后,从所述动态数据和/或所述静态数据中,筛选符合预设条件的数据,作为目标数据;将所述目标数据的格式调整为预设的数据格式,并将调整后的目标数据进行存储。
具体而言,预设条件可以有多种,例如:对于展示实时交通的网页,预设条件可以为:某一时间下,A路段的车流量,或者某一时间下,B路段的车流量;对于展示飞机延误情况的网页,预设条件可以为某一航空公司,或者为某一机场等等,这都是合理的。
从所述动态数据或所述静态数据中,筛选符合预设条件的数据,作为目标数据的实现方式可以有多种,示例性的,在一种实现方式中,删除不符合预设条件的动态数据,得到符合预设条件的数据,作为目标数据。
可以理解的是,为了方便对目标数据进行后续分析处理,将所述目标数据的格式调整为预设的数据格式。例如:对于从火车票的购票网页获取的目标数据,将目标数据中的地点的缩写:如“BJ”调整为“北京”等;对于目标页面中的静态数据而言,将写入目标页面的静态数据,如地点的缩写“SH”调整为“上海”等。
具体而言,将所述目标数据的格式调整为预设的数据格式的实现方式可以有多种,示例性的,在一种实现方式中,通过将目标数据与预设的数据格式进行对比,将与预设的数据格式不符的目标数据,调整为预设的数据格式。
为了更好的理解方案,下面结合图6,对本发明实施例所提供的爬取方法中关于动态数据的爬取过程,再次进行示例性说明。
针对动态数据的爬取过程,可以包括:
获取待爬取的目标页面对应的API,模拟浏览器访问所述目标页面对应的API;
从所述目标页面对应的数据库中获取所述动态数据;
判断所述动态数据获取失败;若判断结果为否,从所述动态数据中,筛选符合预设条件的数据,作为目标数据;将所述目标数据的格式调整为预设的数据格式,并将调整后的目标数据进行存储;
若判断结果为是,判断预设的计数器记录的错误次数达到预定次数,如果是,结束;如果否,间隔预定时间后,继续从所述目标页面对应的数据库中获取所述动态数据。
相对于上述方法的实施例,本发明实施例提供了一种针对动态网页的爬取装置,如图3所示,所述装置可以包括:
第一获取模块310,用于获取待爬取的目标页面对应的应用程序接口API,所述目标页面对应的API为用于从所述目标页面对应的数据库中调用动态数据的应用程序接口,所述动态数据为所述目标页面中实时更新的数据;
第二获取模块320,用于通过访问所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据。
本发明实施例提供的一种针对动态网页的爬取方法中,通过访问目标页面对应的API获取目标页面的动态数据,而通过目标页面的网页地址获取目标页面的静态数据,从而得到目标页面中所有数据。可见,本方案,目标页面对应的API,能够直接从所述目标页面对应的数据库中调用动态数据,简化了获取动态数据的操作过程,使得动态数据的获取效率大大得到提升;并且,解决了在获取动态页面的页面数据时,由于操作过程复杂造成的效率较低的问题。
可选地,如图4所示,所述装置还包括:
第三获取模块330,用于获取所述目标页面的网页地址;通过所述网页地址,获取所述目标页面的静态数据对应的目标代码,所述目标代码为所述静态数据写入所述目标页面时对应的指令代码;对所述目标代码进行解析,得到所述目标代码对应的静态数据。
可选地,所述第二获取模块320包括:
数据确定子模块,用于确定所述动态数据的嵌入方式,所述嵌入方式为所述动态数据嵌入所述目标页面的方式;
数据获取子模块,用于基于所述嵌入方式,通过访问所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据。
可选地,所述嵌入方式包括:基于JavaScript的第一嵌入方式或基于iframe的第二嵌入方式;所述JavaScript为一种开发Web页面的脚本语言,所述iframe为内联框架;
所述数据获取子模块具体用于:
当所述嵌入方式包括第一嵌入方式时,模拟浏览器访问所述目标页面对应的API,得到所述动态数据;
当所述嵌入方式包括第二嵌入方式时,模拟浏览器访问所述目标页面对应的API,得到所述目标页面当前的动态数据,对所述目标页面进行翻页,并在翻页后通过访问所述目标页面对应的API,得到所述目标页面被翻页后的动态数据。
可选地,如图4所示,所述装置还包括:
数据判断模块340,用于在所述数据获取子模块通过所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据之后,判断所述动态数据是否获取成功;
若判断结果为否,判断预设的计数器记录的错误次数是否达到预定次数,如果是,输出错误日志,并结束;如果否,在间隔预定时间后,继续通过所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据。
如图4所示,在包括第一获取模块310、第二获取模块320、第三获取模块330和数据判断模块340的基础上,所述装置还包括:
数据筛选模块350,用于在获取到所述动态数据和/或所述静态数据后,从所述动态数据和/或所述静态数据中,筛选符合预设条件的数据,作为目标数据;将所述目标数据的格式调整为预设的数据格式,并将调整后的目标数据进行存储。
本发明实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,
存储器503,用于存放计算机程序;
处理器501,用于执行存储器503上所存放的程序时,实现一种针对动态网页的爬取方法的步骤:
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一针对动态网页的爬取方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一针对动态网页的爬取方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、存储介质等而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种针对动态网页的爬取方法,其特征在于,包括:
获取待爬取的目标页面对应的应用程序接口API,所述目标页面对应的API为用于从所述目标页面对应的数据库中调用动态数据的应用程序接口,所述动态数据为所述目标页面中实时更新的数据;
通过访问所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述目标页面的网页地址;
通过所述网页地址,获取所述目标页面的静态数据对应的目标代码,所述目标代码为所述静态数据写入所述目标页面时对应的指令代码;
对所述目标代码进行解析,得到所述目标代码对应的静态数据。
3.根据权利要求1或2所述的方法,其特征在于,所述通过访问所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据,包括:
确定所述动态数据的嵌入方式,所述嵌入方式为所述动态数据嵌入所述目标页面的方式;
基于所述嵌入方式,通过访问所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据。
4.根据权利要求3所述的方法,其特征在于,所述嵌入方式包括:基于JavaScript的第一嵌入方式或基于iframe的第二嵌入方式;所述JavaScript为一种开发Web页面的脚本语言,所述iframe为内联框架;
所述基于所述嵌入方式,通过访问所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据,包括:
当所述嵌入方式包括第一嵌入方式时,模拟浏览器访问所述目标页面对应的API,得到所述动态数据;
当所述嵌入方式包括第二嵌入方式时,模拟浏览器访问所述目标页面对应的API,得到所述目标页面当前的动态数据,对所述目标页面进行翻页,并在翻页后通过访问所述目标页面对应的API,得到所述目标页面被翻页后的动态数据。
5.根据权利要求1或2所述的方法,其特征在于,在通过所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据之后,所述方法还包括:
判断所述动态数据是否获取成功;
若判断结果为否,判断预设的计数器记录的错误次数是否达到预定次数,如果是,输出错误日志,并结束;如果否,在间隔预定时间后,继续通过所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据。
6.一种针对动态网页的爬取装置,其特征在于,所述装置包括:
第一获取模块,用于获取待爬取的目标页面对应的应用程序接口API,所述目标页面对应的API为用于从所述目标页面对应的数据库中调用动态数据的应用程序接口,所述动态数据为所述目标页面中实时更新的数据;
第二获取模块,用于通过访问所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第三获取模块,用于获取所述目标页面的网页地址;通过所述网页地址,获取所述目标页面的静态数据对应的目标代码,所述目标代码为所述静态数据写入所述目标页面时对应的指令代码;对所述目标代码进行解析,得到所述目标代码对应的静态数据。
8.根据权利要求6或7所述的装置,其特征在于,所述第二获取模块包括:
数据确定子模块,用于确定所述动态数据的嵌入方式,所述嵌入方式为所述动态数据嵌入所述目标页面的方式;
数据获取子模块,用于基于所述嵌入方式,通过访问所述目标页面对应的API,从所述目标页面对应的数据库中获取所述动态数据。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010661854.XA CN111931024A (zh) | 2020-07-10 | 2020-07-10 | 一种针对动态网页的爬取方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010661854.XA CN111931024A (zh) | 2020-07-10 | 2020-07-10 | 一种针对动态网页的爬取方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111931024A true CN111931024A (zh) | 2020-11-13 |
Family
ID=73312829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010661854.XA Pending CN111931024A (zh) | 2020-07-10 | 2020-07-10 | 一种针对动态网页的爬取方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111931024A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020078136A1 (en) * | 2000-12-14 | 2002-06-20 | International Business Machines Corporation | Method, apparatus and computer program product to crawl a web site |
CN110020044A (zh) * | 2017-09-22 | 2019-07-16 | 北京国双科技有限公司 | 一种爬虫的爬取方法及装置 |
CN110069683A (zh) * | 2017-09-18 | 2019-07-30 | 北京国双科技有限公司 | 一种基于浏览器爬取数据的方法及装置 |
CN111159517A (zh) * | 2019-12-12 | 2020-05-15 | 深信服科技股份有限公司 | 一种信息处理方法、设备、系统和计算机存储介质 |
-
2020
- 2020-07-10 CN CN202010661854.XA patent/CN111931024A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020078136A1 (en) * | 2000-12-14 | 2002-06-20 | International Business Machines Corporation | Method, apparatus and computer program product to crawl a web site |
CN110069683A (zh) * | 2017-09-18 | 2019-07-30 | 北京国双科技有限公司 | 一种基于浏览器爬取数据的方法及装置 |
CN110020044A (zh) * | 2017-09-22 | 2019-07-16 | 北京国双科技有限公司 | 一种爬虫的爬取方法及装置 |
CN111159517A (zh) * | 2019-12-12 | 2020-05-15 | 深信服科技股份有限公司 | 一种信息处理方法、设备、系统和计算机存储介质 |
Non-Patent Citations (1)
Title |
---|
DA1YUH: "《CSDN》", 9 February 2020, HTTPS://BLOG.CSDN.NET/QQ_41564422/ARTICLE/DETAILS/104236425 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110266661B (zh) | 一种授权方法、装置及设备 | |
CN107515865B (zh) | 页面数据点击量统计方法及装置 | |
CN105843815B (zh) | 页面评论处理方法、装置和浏览器 | |
CN104766014A (zh) | 用于检测恶意网址的方法和系统 | |
CN111046317A (zh) | 页面数据采集方法、装置、设备和计算机可读存储介质 | |
CN111552854A (zh) | 一种网页数据抓取方法、装置、存储介质和设备 | |
US20100077257A1 (en) | Methods for disaster recoverability testing and validation | |
CN110909229A (zh) | 一种基于模拟浏览器访问的网页数据获取和存储的系统 | |
WO2021098242A1 (zh) | 页面处理方法、装置、电子设备和计算机可读介质 | |
Van Nortwick et al. | Setting the bar low: are websites complying with the minimum requirements of the CCPA? | |
US20150302528A1 (en) | Recovery of Information from Commercial Web Portals | |
CN115766184A (zh) | 一种网页数据处理方法、装置、电子设备及存储介质 | |
CN104915404A (zh) | 访问失效网址的方法和装置 | |
CN113760721A (zh) | 一种页面测试方法和装置 | |
CN111931024A (zh) | 一种针对动态网页的爬取方法、装置及电子设备 | |
CN109669799B (zh) | 错误上报控制方法、装置及存储介质 | |
US20200004880A1 (en) | Mechanism for web crawling e-commerce resource pages | |
CN110674426A (zh) | 网页行为上报方法和装置 | |
US11550990B2 (en) | Machine first approach for identifying accessibility, non-compliances, remediation techniques and fixing at run-time | |
CA2788100C (en) | Crawling of generated server-side content | |
CN111368231B (zh) | 一种异构冗余架构网站的测试方法及装置 | |
CN108629012B (zh) | 取证数据解析准确性的智能校验方法和系统 | |
CN106202319B (zh) | 一种异常url验证方法及系统 | |
US11829434B2 (en) | Method, apparatus and computer program for collecting URL in web page | |
CN110851346A (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 |