抓取网页数据的方法及系统的制作方法

文档序号:8258911阅读:873来源:国知局
抓取网页数据的方法及系统的制作方法
【技术领域】
[0001]本发明涉及通信领域,更为具体而言,涉及抓取网页数据的方法及系统。
【背景技术】
[0002]随着互联网产业的发展,海量数据日益增多,用户产品层出不穷,竞争的加剧以及产品迭代速度的加快给数据采集技术提出了更高的要求。产品对数据采集技术存在丰富而多变的需求,例如,采集由⑶I (Graphical User Interface,图形用户界面)交互触发展现的数据全集、采集被验证机制阻碍的信息或者采集由关键字驱动的查询结果信息等。然而,目前在现有技术中缺乏一种能够支持不同种类需求的数据采集方法。

【发明内容】

[0003]为有效地解决上述技术问题,本发明提供了一种抓取网页数据的方法及系统。
[0004]一方面,本发明的实施方式提供了一种抓取网页数据的方法,所述方法包括:
[0005]生成数据模板;
[0006]根据所述生成的数据模板以及第一请求数据拼接出第二请求数据;
[0007]根据所述拼接出的第二请求数据执行网页数据的抓取。
[0008]另一方面,本发明的实施方式还提供了一种抓取网页数据的系统,所述系统包括:
[0009]生成模块,用于生成数据模板;
[0010]拼接模块,用于根据所述生成模块所生成的数据模板以及第一请求数据拼接出第二请求数据;
[0011]抓取模块,用于根据所述拼接模块所拼接出的第二请求数据执行网页数据的抓取。
[0012]实施本发明提供的抓取网页数据的方法及系统可以在抓取网页数据的过程中提高对多样化需求的适应性。
【附图说明】
[0013]图1是根据本发明实施方式的一种抓取网页数据的方法的流程图;
[0014]图2示出了图1所示的步骤SllO的一种实施方式;
[0015]图3是根据本发明实施方式的另一种抓取网页数据的方法的框架图;
[0016]图4是根据本发明实施方式的一种抓取网页数据的系统的结构示意图;
[0017]图5示出了图4所示的生成模块110的一种实施方式。
【具体实施方式】
[0018]为使本发明的实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
[0019]图1是根据本发明实施方式的一种抓取网页数据的方法的流程图。所述方法包括:
[0020]SllO:生成数据模板。
[0021]S120:根据所述生成的数据模板以及第一请求数据拼接出第二请求数据。
[0022]其中,在本发明的实施方式中,该数据模板可以包括:请求数据模板,所述第一请求数据为用户的原始请求数据,而该第二请求数据是根据所述数据模块以及第一请求数据拼接出的真正用于发送的请求数据。
[0023]S130:根据所述拼接出的第二请求数据执行网页数据的抓取。
[0024]在上述实施方式中,通过数据模板可以在抓取网页数据的过程中提高对多样化需求的适应性。
[0025]其中,在本发明的实施方式中,该步骤S130可以包括:将所述拼接出的第二请求数据发送至待抓取的站点;接收所述站点返回的响应数据。
[0026]并且,在本发明的实施方式中,所述第一请求数据、第二请求数据以及响应数据可以是HTTP (Hypertext transfer protocol,超文本传输协议)协议数据。
[0027]为直接面向指定数据,不下载页面中其他无关数据,节省带宽,以及实现定制化抓取,在本发明的一种优选的实施方式中,该数据模板还可以包括:响应数据模板。并且,在执行步骤S140后可以根据该响应数据模板提取所述响应数据中的部分数据。其中该响应数据模板描述了响应数据中所需要的一部分数据的位置。
[0028]此外,为实现对非响应数据模板解析方式的支持,进一步提高对个性化及定制化抓取的支持,在本发明的另一种优选的实施方式中,除根据响应数据模板提取所述响应数据中的部分数据的这一定制化抓取方式以外,还可以根据用户的自定义配置提取所述响应数据中的部分数据来实现定制化抓取。其中所述自定义配置例如可以是正则表达式、XPath (Xml Path Language,可扩展标记语言路径语言)字符串、JSONPath (JS0N路径语言)字符串等。
[0029]如图2所示,步骤SllO具体可以通过以下方式实现:
[0030]Slll:对所述站点进行网页数据的抓取。
[0031]S112:截获所述抓取产生的传输数据。
[0032]S113:根据所述截获的传输数据中的各请求数据生成所述请求数据模板,以及,根据所述截获的传输数据中的各响应数据生成所述响应数据模板。
[0033]其中,在本发明的实施方式中,该步骤S113中的根据所述截获的传输数据中的各请求数据生成所述请求数据模板可以通过以下方式实现:确定所述各请求数据中相同的名值对以及不同的名值对;将所述相同的名值对直接写入到所述请求数据模板,将所述不同的名值对中的取值修正为替换标签后写入到所述请求数据模板。其中,名值对是指字段的“名称”和“取值”,以HTTP标准请求报文的报文头中的字段Host:WWW.baidu.com为例,Host是字段的名称,www.baidu.com为字段的取值,“Host”:“www.baidu.com”即为一个名值对。
[0034]并且,根据所述截获的传输数据的中的各响应数据生成所述响应数据模板可以通过以下方式实现:确定所述各响应数据中相同的名值对以及不同的名值对;将所述相同的名值对直接写入到所述响应数据模板,将所述不同的名值对中的取值修正为替换标签后写入到所述响应数据模板。
[0035]以下结合具体的例子对本发明的实施方式进行具体说明。如图3所示,首先获取浏览器与网站之间交互的数据(包括HTTP请求数据以及HTTP响应数据),并从所述获取的交互数据中分析出稳定不变的数据格式信息,即数据模板,包括:请求数据模板以及响应数据模板,其中该请求数据模板用于拼接请求数据,响应数据模板用于描述响应数据中所需要的一部分数据的位置;然后将第一请求数据(用户的原始请求数据)加载到请求队列;最后根据请求数据模板以及请求队列中的第一请求数据拼接出第二请求数据,并以HTTP协议的方式发送给待抓取的站点,然后以HTTP协议的方式读取该站点返回的响应数据,从该响应数据中提取所需要的数据(即定制化提取),比如从站点返回的响应数据一般为 HTML (HyperText Mark-up Language,超文本标记语言)网页,或者 JSON (JavaScriptObject Notat1n,一种轻量级的数据交换格式)数据或者XML (Extensible MarkupLanguage,可扩展标记语言)数据等,而对于用户而言,可能只关心一部分的数据(例如一个淘宝网页中的商品名称以及价格),具体地可以根据响应数据模板进行提取,此外在本发明的实施方式中,还可以向用户提供接口设计(输入响应数据以及用户自定义配置),使用户扩展设计出满足自己需求的用于定制化提取的程序。该用户自定义配置例如可以是正则表达式、XPath (Xml Path Language,可扩展标记语言路径语言)字符串、JSONPath (JSON路径语言)字符串等。此外,在本发明的实施方式中,通过采用并发线程池提高抓取效率。
[0036]以下对生成数据模板的具体过程进行说明。
[0037]首先,在浏览器和网站服务器之间架设网络代理;其次,用户基于浏览器发生η轮网页数据的抓取行为,并使用代理截获所述抓取产生的传输数据(包括HTTP请求数据以及HTTP响应数据),令每轮交互过程分为m组报文,将请求数据报文标识成Snm,将响应数据报文标识成Rnm,则第j (1〈 = j< = η)轮交互过程表示为:C(j)=[(Sj I, Rjl),(Sj2, Rj2),...,(Sjm, Rjm)],第 j 轮中第 k 组(1〈 = k〈 = m)交互数据为(Sjk, Rjk);最后确定该η轮交互中同组请求数据报文中的C0MM0N_KV(相同的“KV对”,即名值对,
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1