抓取页面信息的方法及装置与流程

文档序号:12123996阅读:217来源:国知局
抓取页面信息的方法及装置与流程

本发明涉及互联网技术领域,尤其涉及一种抓取页面信息的方法及装置。



背景技术:

随着互联网浪潮的推进,网络营销也逐步成为企业营销的一种重要的手段。其中搜索引擎营销(Search Engine Marketing,简称SEM)是一种常用的网络营销方式。

SEM的理念是:全面而有效的利用搜索引擎来进行网络营销和推广,以最小的投入,追求最高的性价比,获取最大的来自搜索引擎的访问量,并产生商业价值。然而如何验证网络营销的效果也是备受企业关注。因为通常的抓取页面信息的方法无法获取SEM信息,所以现有技术中验证网络营销效果的方法是:人工查看搜索结果页页面信息,由此获取SEM信息,然后通过分析SEM信息来验证网络营销效果。

在上述验证网络营销效果的过程中,发明人发现,现有技术中无法从页面信息中获得SEM信息。



技术实现要素:

本发明提供了一种抓取页面信息的方法及装置,能够解决现有技术中无法从页面信息中获得SEM信息的问题。

为解决上述技术问题,一方面,本发明提供了一种抓取页面信息的方法,该方法包括:

获取关键词,所述关键词用于查询获得搜索结果页;

根据所述关键词生成所述搜索结果页的统一资源定位符(Uniform Resource Locator,简称URL);

构造包含所述URL的网络浏览器对象,并将所述网络浏览器对象加载到浏览器容器对象中;

在所述浏览器容器对象中获取对应所述网络浏览器对象的页面源代码,所述页面源代码为所述搜索结果页的源代码;

解析所述页面源代码,获得SEM信息。

另一方面,本发明还提供了一种抓取页面信息的装置,该装置包括:

第一获取单元,用于获取关键词,所述关键词用于查询获得搜索结果页;

生成单元,用于根据所述第一获取单元获取的所述关键词生成所述搜索结果页的URL;

构造单元,用于构造包含所述生成单元生成的所述URL的网络浏览器对象;

加载单元,用于将所述构造单元构造的所述网络浏览器对象加载到浏览器容器对象中;

第二获取单元,用于在所述浏览器容器对象中获取对应所述构造单元构造的并由加载单元加载的所述网络浏览器对象的页面源代码,所述页面源代码为所述搜索结果页的源代码;

解析单元,用于解析所述第二获取单元获取的所述页面源代码,获得SEM信息。

本发明提供的抓取页面信息的方法及装置,能够获取查询搜索结果页的关键词,根据关键词生成搜索结果页的URL,构造包含URL的网络浏览器对象,并加载到浏览器容器对象中。然后通过浏览器容器对象获取对应网络浏览器对象的页面源代码,最后解析页面源代码,获得SEM信息。与现有技术相比,本发明能够从搜索结果页的页面源代码中获取SEM信息。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符 号表示相同的部件。在附图中:

图1示出了本发明实施例提供的一种抓取页面信息的方法流程图;

图2示出了本发明实施例提供的另一种抓取页面信息的方法流程图;

图3示出了本发明实施例提供的一种抓取页面信息的装置的组成框图;

图4示出了本发明实施例提供的另一种抓取页面信息的装置的组成框图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

为解决现有技术中无法从页面信息中获得SEM信息的问题,本发明实施例提供了一种抓取页面信息的方法,如图1所示,该方法包括:

101、获取关键词,关键词用于查询获得搜索结果页。

获取关键词是进行网络搜索、查询并获得搜索结果页的必要条件,不同的关键词可以获得不同的搜索结果页。本实施例中,只针对进行了搜索引擎营销的客户,客户在搜索引擎营销时会购买一些关键词,这些关键词就是本步骤中要获取的关键词。实际应用中,关键词可以由客户直接提供获得,本实施例不对关键词的数量进行限制。

102、根据关键词生成搜索结果页的URL。

搜索结果页是以一个文件的形式存储的,并由其对应的URL予以标识,因此为了后面能够获取搜索结果页就需要得到搜索结果页对应的URL。而搜索结果页对应的URL是由步骤101获取的关键词可以唯一确定的,所以,需要根据关键词生成搜索结果页的URL。

103、构造包含URL的网络浏览器对象,并将网络浏览器对象加载到浏览器容器对象中。

本实施例是通过网络浏览器来抓取页面信息的,因此首先需要建立网络浏览器对象,通过执行网络浏览器对象来抓取页面信息,即抓取搜索结 果页的信息。由步骤102可知,搜索结果页是由与它对应的URL进行标识的,所以能够通过建立网络浏览器对象和URL的联系来实现抓取页面信息的目的。

上述联系通过构造包含URL的网络浏览器对象来建立,然后将构造好的包含URL的网络浏览器对象加载到网络浏览器容器对象中。将包含URL的网络浏览器对象加载到网络浏览器容器对象中是为了将后面所有的搜索结果页集中存放、统一解析。

104、在浏览器容器对象中获取对应网络浏览器对象的页面源代码,页面源代码为搜索结果页的源代码。

包含URL的网络浏览器对象加载到浏览器容器对象后,在浏览器容器对象中获取URL对应的搜索结果页,搜索结果页的信息是以页面源代码的形式记录和保存的,所以对应网络浏览器对象的页面源代码就是搜索结果页的源代码。

105、解析页面源代码,获得SEM信息。

由步骤104得到的搜索结果页的源代码中包含了搜索结果页的全部信息,而本实施例只需要获取其中的SEM信息,所以需要对得到的页面源代码进行解析来获取SEM信息。

SEM信息包括:某个链接在搜索结果页面中哪个位置的推广链接中、该链接在推广链接中的排名、该链接的标题描述、该链接下面是否有图片等。

本实施例提供的抓取页面信息的方法,能够获取查询搜索结果页的关键词,根据关键词生成搜索结果页的URL,构造包含URL的网络浏览器对象,并加载到浏览器容器对象中。然后通过浏览器容器对象获取对应网络浏览器对象的页面源代码,最后解析页面源代码,获得SEM信息。与现有技术相比,本实施例能够从搜索结果页的页面源代码中获取SEM信息。

进一步的,作为对图1所示实施例的细化及扩展,本发明实施例还提供了另一实施例。如图2所示,该实施例中抓取页面信息的方法包括:

201、获取关键词,关键词用于查询获得搜索结果页。

该步骤的实现方式与图1步骤101的实现方式相同,此处不再赘述。

202、根据关键词生成搜索结果页的URL。

该步骤的实现方式与图1步骤102的实现方式相同,此处不再赘述。

203、创建浏览器容器对象及网络浏览器对象。

首先,创建浏览器容器对象,本实施例中的浏览器容器对象是Tabcontrol容器对象,Tabcontrol是用于显示页面标签页的容器,用到本实施例中是用来显示搜索结果页的容器。

然后,创建网络浏览器对象,本实施例依靠的是cefSharp开源框架,所以,创建的网络浏览器是ChromiumWebBrowser,ChromiumWebBrowser与普通浏览器的区别就是没有外层的可视化界面,另外它是由代码进行操作和执行的。因此,本实施例创建的网络浏览器对象是ChromiumWebBrowser对象。

需要说明的是,实际应用中步骤203也可以在步骤202之前执行。

204、将URL设置为网络浏览器对象的参数,并将网络浏览器对象加载到浏览器容器对象中。

由步骤202可知,搜索结果页是由与其对应的URL予以标识的,所以能够通过建立网络浏览器对象和URL的联系来实现抓取页面信息的目的。

上述建立网络浏览器对象和URL的联系是通过将URL设置为构造网络浏览器对象函数的参数实现的。每一个URL作为构造一个ChromiumWebBrowser对象函数的参数,ChromiumWebBrowser对象的数量与URL的数量是一一对应的关系。

将构造好的ChromiumWebBrowser对象加载到上述Tabcontrol容器对象中,直到所有的ChromiumWebBrowser对象加载完成,即所有的URL被设置完,返回一个加载完成的提示信息。

205、在浏览器容器对象中执行网络浏览器对象,向网络侧上报URL。

由步骤204可知,ChromiumWebBrowser对象加载在Tabcontrol容器对象中,因此在Tabcontrol容器对象中执行ChromiumWebBrowser对象函数。URL是作为ChromiumWebBrowser对象函数的参数,所以执行的过程即:将URL上报到网络侧进行请求。

206、接收网络侧返回的对应URL的搜索结果页的页面源代码。

网络侧根据步骤205上报的URL生成其对应的请求结果,即URL对应的搜索结果页,搜索结果页的信息是以页面源代码的形式记录和保存的,所以生成的是对应URL的搜索结果页的页面源代码,然后将对应URL的搜索结果页的页面源代码返回到Tabcontrol容器对象中。

另外,Tabcontrol容器对象中的ChromiumWebBrowser对象自带有类似ViewSourceCode查看源代码的功能,通过这个功能能够查看搜索结果页的页面源代码。

207、在页面源代码中查找预设编号,获取预设编号对应的代码信息。

步骤206获取到的搜索结果页的页面源代码中包括了搜索结果页中所有信息的源代码,其中SEM信息是包括在推广链接中的信息,而推广链接信息是由预设的编号予以标识的,所以需要在搜索结果页的源代码中查找预设的编号,获取预设编号对应的代码信息,即获取到搜索结果页中推广链接的信息,即获取到SEM信息。

本实施例中,为了更方便和直观的表示SEM信息,可以将SEM信息制作成一个excel表格进行展示。表格如下所示,其中包括8项内容,具体是:关键词、搜索结果页、标题、描述、显示URL、所在位置、排名、是否包含图片。关键词栏显示的是客户提供的关键词;搜索结果页栏显示的是第几页搜索结果页,因为某个关键词对应的搜索结果页往往不止一页;标题栏显示的是链接的标题;描述栏显示的是对链接标题的描述;显示URL栏显示的是链接的URL;所在的位置栏显示的是链接所在的推广链接在搜索结果页中的位置;排名栏显示的是链接在所在的推广链接中的排名;是否包含图片栏显示的是该链接下面是否显示图片。

在实际的应用中,SEM信息的展示形式和内容项数不受限制,根据客户的需求来定。

进一步的,在页面源代码中查找预设编号之后,从预设编号中提取位置信息,位置信息用于表征SEM信息在搜索结果页中的位置,并且位置包括下述至少一种位置:顶部位置、底部位置以及右侧位置。具体的:由步骤207可知,推广链接的信息是由预设编号予以标识的,所以从预设编号中提取的位置信息即为推广链接在搜索结果页中的位置信息,而SEM信息包括在推广链接中,所以位置信息表征SEM信息在所述搜索结果页中的位置。另外,上述位置是根据不同的搜索引擎搜索结果页中推广链接的实际位置来确定的。

进一步的,作为对上述图1和图2所示方法的实现,本发明实施例另一实施例还提供了一种抓取页面信息的装置,用于对上述图1和图2所示的方法进行实现。如图3所示,该装置包括:第一获取单元31、生成单元32、构造单元33、加载单元34、第二获取单元35及解析单元36。

第一获取单元31,用于获取关键词,关键词用于查询获得搜索结果页;

生成单元32,用于根据第一获取单元31获取的关键词生成搜索结果页的URL;

构造单元33,用于构造包含生成单元32生成的URL的网络浏览器对象;

加载单元34,用于将构造单元33构造的网络浏览器对象加载到浏览器 容器对象中;

第二获取单元35,用于在浏览器容器对象中获取对应的构造单元33构造的并由加载单元34加载的网络浏览器对象的页面源代码,页面源代码为搜索结果页的源代码;

解析单元36,用于解析第二获取单元35获取的页面源代码,获得SEM信息。

进一步的,如图4所示,该装置进一步包括:

创建单元37,用于在构造单元33构造包含URL的网络浏览器对象之前,创建浏览器容器对象及网络浏览器对象。

进一步的,构造单元33用于:

将URL设置为网络浏览器对象的参数。

进一步的,如图4所示,第二获取单元35,包括:

上报模块351,用于在浏览器容器对象中执行网络浏览器对象,向网络侧上报URL;

接收模块352,用于接收网络侧返回的对应上报模块351上报的URL的搜索结果页的页面源代码。

进一步的,如图4所示,解析单元36包括:

查找模块361,用于在页面源代码中查找预设编号;

获取模块362,用于获取查找模块361查找的预设编号对应的代码信息。

进一步的,解析单元36用于:

在页面源代码中查找预设编号之后,从预设编号中提取位置信息,位置信息用于表征SEM信息在搜索结果页中的位置;

位置包括下述至少一种位置:顶部位置、底部位置以及右侧位置。

本实施例提供的抓取页面信息的装置,能够获取查询搜索结果页的关键词,根据关键词生成搜索结果页的URL,构造包含URL的网络浏览器对象,并加载到浏览器容器对象中。然后通过浏览器容器对象获取对应网络浏览器对象的页面源代码,最后解析页面源代码,获得SEM信息。与现有技术相比,本实施例能够从搜索结果页的页面源代码中获取SEM信息。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明实施例的内容,并且上面对特定语言所做的描述是为了披露本发明实施例的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明实施例的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明实施例的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明实施例要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明实施例的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。 可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明实施例的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明实施例的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的发明名称(如确定网站内链接等级的装置)中的一些或者全部部件的一些或者全部功能。本发明实施例还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明实施例的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明实施例进行说明而不是对本发明实施例进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明实施例可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中 的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1