本发明专利技术提供一种抓取网页数据的方法及系统,所述方法包括:生成数据模板;根据所述生成的数据模板以及第一请求数据拼接出第二请求数据;根据所述拼接出的第二请求数据执行网页数据的抓取。通过采用本发明专利技术可以在抓取网页数据的过程中提高对多样化需求的适应性。
【技术实现步骤摘要】
抓取网页数据的方法及系统
本专利技术涉及通信领域,更为具体而言,涉及抓取网页数据的方法及系统。
技术介绍
随着互联网产业的发展,海量数据日益增多,用户产品层出不穷,竞争的加剧以及产品迭代速度的加快给数据采集技术提出了更高的要求。产品对数据采集技术存在丰富而多变的需求,例如,采集由GUI(GraphicalUserInterface,图形用户界面)交互触发展现的数据全集、采集被验证机制阻碍的信息或者采集由关键字驱动的查询结果信息等。然而,目前在现有技术中缺乏一种能够支持不同种类需求的数据采集方法。
技术实现思路
为有效地解决上述技术问题,本专利技术提供了一种抓取网页数据的方法及系统。一方面,本专利技术的实施方式提供了一种抓取网页数据的方法,所述方法包括:生成数据模板;根据所述生成的数据模板以及第一请求数据拼接出第二请求数据;根据所述拼接出的第二请求数据执行网页数据的抓取。另一方面,本专利技术的实施方式还提供了一种抓取网页数据的系统,所述系统包括:生成模块,用于生成数据模板;拼接模块,用于根据所述生成模块所生成的数据模板以及第一请求数据拼接出第二请求数据;抓取模块,用于根据所述拼接模块所拼接出的第二请求数据执行网页数据的抓取。实施本专利技术提供的抓取网页数据的方法及系统可以在抓取网页数据的过程中提高对多样化需求的适应性。附图说明图1是根据本专利技术实施方式的一种抓取网页数据的方法的流程图;图2示出了图1所示的步骤S110的一种实施方式;图3是根据本专利技术实施方式的另一种抓取网页数据的方法的框架图;图4是根据本专利技术实施方式的一种抓取网页数据的系统的结构示意图;图5示出了图4所示的生成模块110的一种实施方式。具体实施方式为使本专利技术的实施例的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术作进一步地详细描述。图1是根据本专利技术实施方式的一种抓取网页数据的方法的流程图。所述方法包括:S110:生成数据模板。S120:根据所述生成的数据模板以及第一请求数据拼接出第二请求数据。其中,在本专利技术的实施方式中,该数据模板可以包括:请求数据模板,所述第一请求数据为用户的原始请求数据,而该第二请求数据是根据所述数据模块以及第一请求数据拼接出的真正用于发送的请求数据。S130:根据所述拼接出的第二请求数据执行网页数据的抓取。在上述实施方式中,通过数据模板可以在抓取网页数据的过程中提高对多样化需求的适应性。其中,在本专利技术的实施方式中,该步骤S130可以包括:将所述拼接出的第二请求数据发送至待抓取的站点;接收所述站点返回的响应数据。并且,在本专利技术的实施方式中,所述第一请求数据、第二请求数据以及响应数据可以是HTTP(Hypertexttransferprotocol,超文本传输协议)协议数据。为直接面向指定数据,不下载页面中其他无关数据,节省带宽,以及实现定制化抓取,在本专利技术的一种优选的实施方式中,该数据模板还可以包括:响应数据模板。并且,在执行步骤S140后可以根据该响应数据模板提取所述响应数据中的部分数据。其中该响应数据模板描述了响应数据中所需要的一部分数据的位置。此外,为实现对非响应数据模板解析方式的支持,进一步提高对个性化及定制化抓取的支持,在本专利技术的另一种优选的实施方式中,除根据响应数据模板提取所述响应数据中的部分数据的这一定制化抓取方式以外,还可以根据用户的自定义配置提取所述响应数据中的部分数据来实现定制化抓取。其中所述自定义配置例如可以是正则表达式、XPath(XmlPathLanguage,可扩展标记语言路径语言)字符串、JSONPath(JSON路径语言)字符串等。如图2所示,步骤S110具体可以通过以下方式实现:S111:对所述站点进行网页数据的抓取。S112:截获所述抓取产生的传输数据。S113:根据所述截获的传输数据中的各请求数据生成所述请求数据模板,以及,根据所述截获的传输数据中的各响应数据生成所述响应数据模板。其中,在本专利技术的实施方式中,该步骤S113中的根据所述截获的传输数据中的各请求数据生成所述请求数据模板可以通过以下方式实现:确定所述各请求数据中相同的名值对以及不同的名值对;将所述相同的名值对直接写入到所述请求数据模板,将所述不同的名值对中的取值修正为替换标签后写入到所述请求数据模板。其中,名值对是指字段的“名称”和“取值”,以HTTP标准请求报文的报文头中的字段Host:www.baidu.com为例,Host是字段的名称,www.baidu.com为字段的取值,“Host”:“www.baidu.com”即为一个名值对。并且,根据所述截获的传输数据的中的各响应数据生成所述响应数据模板可以通过以下方式实现:确定所述各响应数据中相同的名值对以及不同的名值对;将所述相同的名值对直接写入到所述响应数据模板,将所述不同的名值对中的取值修正为替换标签后写入到所述响应数据模板。以下结合具体的例子对本专利技术的实施方式进行具体说明。如图3所示,首先获取浏览器与网站之间交互的数据(包括HTTP请求数据以及HTTP响应数据),并从所述获取的交互数据中分析出稳定不变的数据格式信息,即数据模板,包括:请求数据模板以及响应数据模板,其中该请求数据模板用于拼接请求数据,响应数据模板用于描述响应数据中所需要的一部分数据的位置;然后将第一请求数据(用户的原始请求数据)加载到请求队列;最后根据请求数据模板以及请求队列中的第一请求数据拼接出第二请求数据,并以HTTP协议的方式发送给待抓取的站点,然后以HTTP协议的方式读取该站点返回的响应数据,从该响应数据中提取所需要的数据(即定制化提取),比如从站点返回的响应数据一般为HTML(HyperTextMark-upLanguage,超文本标记语言)网页,或者JSON(JavaScriptObjectNotation,一种轻量级的数据交换格式)数据或者XML(ExtensibleMarkupLanguage,可扩展标记语言)数据等,而对于用户而言,可能只关心一部分的数据(例如一个淘宝网页中的商品名称以及价格),具体地可以根据响应数据模板进行提取,此外在本专利技术的实施方式中,还可以向用户提供接口设计(输入响应数据以及用户自定义配置),使用户扩展设计出满足自己需求的用于定制化提取的程序。该用户自定义配置例如可以是正则表达式、XPath(XmlPathLanguage,可扩展标记语言路径语言)字符串、JSONPath(JSON路径语言)字符串等。此外,在本专利技术的实施方式中,通过采用并发线程池提高抓取效率。以下对生成数据模板的具体过程进行说明。首先,在浏览器和网站服务器之间架设网络代理;其次,用户基于浏览器发生n轮网页数据的抓取行为,并使用代理截获所述抓取产生的传输数据(包括HTTP请求数据以及HTTP响应数据),令每轮交互过程分为m组报文,将请求数据报文标识成Snm,将响应数据报文标识成Rnm,则第j(1<=j<=n)轮交互过程表示为:C(j)=[(Sj1,Rj1),(Sj2,Rj2),…,(Sjm,Rjm)],第j轮中第k组(1<=k<=m)交互数据为(Sjk,Rjk);最后确定该n轮交互中同组请求数据报文中的COMMON_KV(相同的“KV对”,即名本文档来自技高网...
【技术保护点】
一种抓取网页数据的方法,其特征在于,所述方法包括:生成数据模板;根据所述生成的数据模板以及第一请求数据拼接出第二请求数据;根据所述拼接出的第二请求数据执行网页数据的抓取。
【技术特征摘要】
1.一种抓取网页数据的方法,其特征在于,所述方法包括:生成数据模板;根据所述数据模板以及第一请求数据拼接出第二请求数据;根据所述第二请求数据执行网页数据的抓取;其中,生成数据模板包括:对待抓取的站点进行网页数据的抓取;截获所述抓取产生的传输数据;根据所述传输数据中的各请求数据生成请求数据模板,以及,根据所述传输数据中的各响应数据生成响应数据模板。2.如权利要求1所述的方法,其特征在于,根据所述第二请求数据执行网页数据的抓取包括:将所述第二请求数据发送至待抓取的站点;接收所述站点返回的响应数据。3.如权利要求2所述的方法,其特征在于,所述方法还包括:在执行接收所述站点返回的响应数据的步骤后,根据所述响应数据模板提取所述响应数据中的部分数据。4.如权利要求3所述的方法,其特征在于,所述方法还包括:在执行接收所述站点返回的响应数据的步骤后,根据用户的自定义配置提取所述响应数据中的部分数据。5.如权利要求1所述的方法,其特征在于,根据所述传输数据中的各请求数据生成请求数据模板包括:确定所述各请求数据中相同的名值对以及不同的名值对;将所述相同的名值对直接写入到所述请求数据模板,将所述不同的名值对中的取值修正为替换标签后写入到所述请求数据模板。6.如权利要求1所述的方法,其特征在于,根据所述传输数据的中的各响应数据生成响应数据模板包括:确定所述各响应数据中相同的名值对以及不同的名值对;将所述相同的名值对直接写入到所述响应数据模板,将所述不同的名值对中的取值修正为替换标签后写入到所述响应数据模板。7.一种抓取网页数据的系统,其特征在于,所述系统包括:生成模块,用于生成数据模板;拼接模块,用于根据所述生成模块所生成的数据模板以及第一请求数据拼接出第二...
【专利技术属性】
技术研发人员:沙安澜,
申请(专利权)人:百度在线网络技术北京有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。