CN103294732A - 网页抓取方法及爬虫 - Google Patents
网页抓取方法及爬虫 Download PDFInfo
- Publication number
- CN103294732A CN103294732A CN2012100560606A CN201210056060A CN103294732A CN 103294732 A CN103294732 A CN 103294732A CN 2012100560606 A CN2012100560606 A CN 2012100560606A CN 201210056060 A CN201210056060 A CN 201210056060A CN 103294732 A CN103294732 A CN 103294732A
- Authority
- CN
- China
- Prior art keywords
- groove
- webpage
- response
- url
- parameter
- 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.)
- Granted
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种网页抓取方法及爬虫。所述方法包括如下步骤:将种子URL注入到Web数据库中;基于Web数据库生成URL列表;按队列的顺序将URL列表中的URL馈送给网页抓取器;由网页抓取器、按照网页对应的访问模式、根据被馈送的URL来对网页进行抓取;以及基于所抓取的网页,更新Web数据库中URL的状态以及注入新发现的URL;其中,所述访问模式包括请求参数槽、响应参数槽、以及请求参数槽与响应参数槽的对应关系,请求参数槽中包括请求参数、以及请求参数槽与响应参数槽的匹配关系,响应参数槽中包括响应参数、以及关于响应参数在http响应消息中的提取位置的提取位置信息。
Description
技术领域
本发明一般地涉及网页抓取方法及爬虫(crawler)。具体而言,本发明涉及一种能够对深层网页(DeepWeb)进行抓取的方法和爬虫。
背景技术
近年来,随着互联网的发展,在网络上提供了大量的信息。网络上的网页大体可分为两类:表层网页(Surface Web)和深层网页(Deep Web)。表层网页是指通过超链接可以被传统搜索引擎索引到的页面的集合。深层网页是指网络中不能被传统的搜索引擎索引到的那部分内容,主要包含四种类型:(1)通过填写表单形成对后台在线数据库的查询而得到的动态页面;(2)需要登录才能访问的内容(3)由于缺乏被指向的超链接而没有被搜索引擎索引到的页面;(4)网络上可访问的非网页文件,比如图片文件、PDF和Word文档等。以第一种类型为例,网络(Web)中可访问的在线数据库称为Web数据库或WDB。Web数据库中的内容只有在被查询时才会被Web服务器用来动态生成页面,并将动态页面返回给访问者。因此没有超链接指向这些页面,这与可以被直接访问的静态页面存在根本区别。故难以被传统搜索引擎索引。
然而,深层网页的数量是巨大的。根据2000年的一项研究表明,深层网页中包含了大约7500TB大小,5000亿的文档。因此,这部分资源是非常有价值的。同时,由于难以被传统的搜索引擎索引,所以很难被有效地利用起来。
为了获取深层网页,现在通常的做法是花费很多人力去人工地寻找访问深层网页的方式,或者一些自动或半自动的方法主要处理在没有Javascript的干扰下的隐藏在表单后面的网页(即上面提到的第一种网页)。
但是传统的方法无法应对Javascript的干扰。随着Javascript被广泛的使用,网页的行为被显著地改变了。以表单为例,Javascript的影响在如下几个方面:(1)网页的DOM(Document Object Model,文档对象模型)能被动态地改变,因此表格里面包含的元素有可能被增加和减少;(2)表单的动作(action)能够被动态地赋予;(3)当表单被提交的时候,名称和值对可以被修改;(4)表单甚至可以被动态地生成并且由Javascript提交。可见,Javascript的干扰将导致难以发现正确的URL(Universal Resource Locator,统一资源定位符)和参数。而URL和参数对于深层网页的抓取至关重要。
因此,传统方法难以完全地和高效地采集深层网页,并难以克服Javascript的干扰。
发明内容
在下文中给出了关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
本发明的目的是针对现有技术的上述问题,提出了一种能够对深层网页(DeepWeb)进行抓取的方法和爬虫。该方案能够完全地和高效地抓取深层网页,并能够克服Javascript的干扰。
为了实现上述目的,根据本发明的一个方面,提供了一种网页抓取方法,包括如下步骤:将种子URL注入到Web数据库中;基于Web数据库生成URL列表;按队列的顺序将URL列表中的URL馈送给网页抓取器;由网页抓取器、按照网页对应的访问模式、根据被馈送的URL来对网页进行抓取;以及基于所抓取的网页,更新Web数据库中URL的状态以及注入新发现的URL;其中,所述访问模式包括请求参数槽、响应参数槽、以及请求参数槽与响应参数槽的对应关系,请求参数槽中包括请求参数、以及请求参数槽与响应参数槽的匹配关系,响应参数槽中包括响应参数、以及关于响应参数在ht tp响应消息中的提取位置的提取位置信息。
根据本发明的一个具体实施例,队列包括普通队列和优先队列,基于会话的网页的URL被存储在优先队列中,以具有较高的优先权。
根据本发明的一个具体实施例,在起始网页的网址满足预定的触发条件时,触发相应的访问模式来进行网页的抓取。
根据本发明的一个具体实施例,所述按照网页对应的访问模式进行抓取包括:根据请求参数槽与响应参数槽的匹配关系,将与其匹配的响应参数槽中的响应参数,填充到请求参数槽中作为请求参数;以及根据对应于同一请求的一个或更多个请求参数槽中的请求参数,生成请求消息并将其加入优先队列,以由网页抓取器优先抓取。
根据本发明的一个具体实施例,所述按照网页对应的访问模式进行抓取还包括:发送请求消息,以得到对应的响应消息;根据请求参数槽与响应参数槽的对应关系,找到对应的响应参数槽;以及按照所述响应参数槽中的提取位置信息,从所得到的响应消息中提取响应参数,并将所提取的响应参数填充到该响应参数槽中。
根据本发明的一个具体实施例,所述访问模式是通过如下步骤获得的:收集与网页的访问相关的http消息流;以及从所收集的http消息流中,根据起始网页的http响应消息和目标http请求消息,确定与目标http请求消息相关的访问模式。
根据本发明的一个具体实施例,所述确定步骤包括:从与目标http请求消息所对应的请求参数槽开始,搜索与所述请求参数槽匹配的响应参数槽以及与所述响应参数槽对应的请求参数槽,直至所搜索到的响应参数槽对应于起始网页的http响应消息,从而得到连接对应于起始网页的http响应消息的响应参数槽与对应于目标http请求消息的请求参数槽的路径;以及验证所得到的路径,以得到访问模式。
根据本发明的另一个方面,提供了一种爬虫,用于抓取网页,包括:URL注入器,被配置为将种子URL注入到Web数据库中;URL生成器,被配置为基于Web数据库生成URL列表;URL馈送器,被配置为按队列的顺序将URL列表中的URL馈送给网页抓取器;网页抓取器,被配置为按照网页对应的访问模式、根据被馈送的URL来对网页进行抓取;以及Web数据库更新器,被配置为基于所抓取的网页,更新Web数据库中URL的状态以及注入新发现的URL;其中,所述访问模式包括请求参数槽、响应参数槽、以及请求参数槽与响应参数槽的对应关系,请求参数槽中包括请求参数、以及请求参数槽与响应参数槽的匹配关系,响应参数槽中包括响应参数、以及关于响应参数在http响应消息中的提取位置的提取位置信息。
根据本发明的一个具体实施例,所述网页抓取器被进一步配置为:根据请求参数槽与响应参数槽的匹配关系,将与其匹配的响应参数槽中的响应参数,填充到请求参数槽中作为请求参数;以及根据对应于同一请求的一个或更多个请求参数槽中的请求参数,生成请求消息并将其加入所述队列中的优先队列,以由网页抓取器优先抓取。
根据本发明的一个具体实施例,所述网页抓取器被进一步配置为:发送请求消息,以得到对应的响应消息;根据请求参数槽与响应参数槽的对应关系,找到对应的响应参数槽;以及按照所述响应参数槽中的提取位置信息,从所得到的响应消息中提取响应参数,并将所提取的响应参数填充到该响应参数槽中。
另外,根据本发明的另一方面,还提供了一种存储介质。所述存储介质包括机器可读的程序代码,当在信息处理设备上执行所述程序代码时,所述程序代码使得所述信息处理设备执行根据本发明的上述方法。
此外,根据本发明的再一方面,还提供了一种程序产品。所述程序产品包括机器可执行的指令,当在信息处理设备上执行所述指令时,所述指令使得所述信息处理设备执行根据本发明的上述方法。
附图说明
参照下面结合附图对本发明实施例的说明,会更加容易地理解本发明的以上和其它目的、特点和优点。附图中的部件只是为了示出本发明的原理。在附图中,相同的或类似的技术特征或部件将采用相同或类似的附图标记来表示。附图中:
图1示出了根据本发明的访问模式的一个示例;
图2示出了根据http消息的访问顺序建立的树;
图3示出了根据本发明一个实施例的用于抓取网页的爬虫;
图4示出了根据本发明一个实施例的网页抓取方法的详细流程图;
图5示出了根据本发明的爬虫实施网页抓取方法的示例流程图;以及
图6示出了可用于实施根据本发明实施例的方法和设备的计算机的示意性框图。
具体实施方式
在下文中将结合附图对本发明的示范性实施例进行详细描述。为了清楚和简明起见,在说明书中并未描述实际实施方式的所有特征。然而,应该了解,在开发任何这种实际实施例的过程中必须做出很多特定于实施方式的决定,以便实现开发人员的具体目标,例如,符合与系统及业务相关的那些限制条件,并且这些限制条件可能会随着实施方式的不同而有所改变。此外,还应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于本公开内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。
在此,还需要说明的一点是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的装置结构和/或处理步骤,而省略了与本发明关系不大的其他细节。另外,还需要指出的是,在本发明的一个附图或一种实施方式中描述的元素和特征可以与一个或更多个其它附图或实施方式中示出的元素和特征相结合。
下面将首先对本发明的原理做简单介绍。
如上所述,深层网页没有可被直接利用的请求URL和请求参数,因而难以被传统的搜索引擎采集。Javascript又对传统的深层网页抓取方法产生干扰,使得传统方法难以获得正确的请求URL和请求参数。
本发明的发明人观察到每个浏览器都遵循http协议,因此,无论Javascript在浏览器里如何执行,最终所有的参数将由浏览器发出的http请求消息所携带。另一方面,如果要被抓取的网站没有特别大的更新,其深层网页的访问模式通常是固定。
因此,可以从观察数据中学习访问模式,然后在抓取时重现访问模式。观察数据主要是http请求消息和http响应消息构成的http消息。
此外,http请求消息的重现基于如下的事实:http协议中主要的是GET和POST这两种请求。在http协议中,与服务器的参数的传递,均是通过请求的头来进行的。参数的存放位置比较固定,通常为以下几个位置:(1)URL的查询(query)部分,例如:在http://translate.google.com.hk/translate_a/t?client=t&text=home中,传递的参数是“client=t&text=home”;(2)post的部分,例如当点击表单中的提交按钮后,如果表单的动作(action)参数是post,则参数会以application/x-www-form-URLencoded的方式被传送到服务器;(3)cookie字段,在浏览器中,Javascript可以通过操作cookie来将参数传送给服务器;(4)URL的路径(path)部分。通过URL重写(rewrite)技术,参数可以通过URL的路径部分被传送到服务器。通常情况下,参数都是表示成名称和值的对。因此,http请求消息可以从一系列参数中直接还原出来。
下面,将参照图1对访问模式进行说明。
图1示出了根据本发明的访问模式的一个示例。
访问模式包括请求参数槽、响应参数槽、以及请求参数槽与响应参数槽的对应关系,请求参数槽中包括请求参数、以及请求参数槽与响应参数槽的匹配关系,响应参数槽中包括响应参数、以及关于响应参数在http响应消息中的提取位置的提取位置信息。
具体地,图1中使用请求参数槽和响应参数槽来描述参数。请求参数槽表征http请求消息,响应参数槽表征http响应消息。http请求消息会引发http响应消息,因而,请求参数槽与响应参数槽的存在对应关系,例如,“初始消息”上方用虚线框围起来的请求参数槽所对应的http请求消息所引发的http响应消息对应于同一虚线框内的响应参数槽。因此,访问模式总体上包括请求参数槽、响应参数槽、以及请求参数槽与响应参数槽的对应关系。
响应参数槽中包括响应参数。为了能够在重现访问模式的抓取过程中从响应消息中提取响应参数,在响应参数槽中还包括有关于响应参数在http响应消息中的提取位置的提取位置信息。提取位置信息例如是xpath等,用来指明如何从http响应消息中解析得到响应参数槽中的响应参数。
请求参数槽中包括请求参数。由于之后的http请求消息基于之前的http响应消息,所以请求参数槽中还包括请求参数槽与响应参数槽的匹配关系。请求参数槽中的请求参数可以根据与该请求参数槽匹配的响应参数槽中的响应参数的更新而更新(如图1中的箭头所示)。这种匹配关系的实现方式的一个示例是指针,在请求槽中,除了包含请求参数的名称和值以外,还包括一个指针指向与其匹配的响应参数槽,用来表示请求参数的值是从哪个响应参数槽里来的。从图中的示例,也可以看出,与一个响应参数槽匹配的请求参数槽是唯一的。由于一个http请求消息对应于一个或更多个请求参数槽,因此,对应于同一请求的多个请求参数槽对应于多个响应参数槽,这些响应参数槽对应的响应消息在时间上位于所述多个请求参数槽对应的http请求消息之前,并且可能属于不同的http消息。
从而,一个http消息,可以由请求参数槽和相对应的响应参数槽来描述。深层网络的访问模式,可以由请求参数槽、响应参数槽、请求参数槽与响应参数槽的对应关系以及请求参数槽与响应参数槽的匹配关系来描述。
这样,在抓取深层网页时,每得到一个http响应消息,其相应的响应参数槽中的响应参数的值就会根据关于响应参数在http响应消息中的提取位置的提取位置信息被更新。然后请求参数槽中的请求参数的名称和值也会根据该请求参数槽中的指针所指向的响应参数槽中的响应参数被更新。这样,从初始消息开始,深层网页相关的各个http请求消息会被一个接一个地生成。生成的http请求消息会引发获得相应的http响应消息。以此类推,直至获得最终的http响应消息,这个http响应消息就是希望抓取到的动态页面。
应注意,从图1中由左至右的顺序为时间顺序,请求参数槽中的请求参数被更新可以按照时间顺序,即当响应参数槽中的响应参数被更新后,并不立即更新与其匹配的请求参数槽中的请求参数,因为它们之间的匹配关系并不在响应参数槽中,而是在请求参数槽中。因此,当随时间的流逝,进行到位于时间上在后的请求参数槽时,再按照匹配关系根据响应参数槽中的响应参数更新请求参数槽中的请求参数。
基于上述思想,本发明的发明人设计了相应的网页抓取方法和爬虫。
下面将参照图4描述根据本发明的一个实施例的网页抓取方法的流程。
图4示出了根据本发明的一个实施例的网页抓取方法的详细流程图。如图4所示,根据本发明的一个实施例的网页抓取方法,包括如下步骤:将种子URL注入到Web数据库中(步骤S401);基于Web数据库生成URL列表(步骤S402);按队列的顺序将URL列表中的URL馈送给网页抓取器(步骤S403);由网页抓取器、按照网页对应的访问模式、根据被馈送的URL来对网页进行抓取(步骤S404);以及基于所抓取的网页,更新Web数据库中URL的状态以及注入新发现的URL(步骤S405);其中,所述访问模式包括请求参数槽、响应参数槽、以及请求参数槽与响应参数槽的对应关系,请求参数槽中包括请求参数、以及请求参数槽与响应参数槽的匹配关系,响应参数槽中包括响应参数、以及关于响应参数在http响应消息中的提取位置的提取位置信息。
考虑到抓取深层网页需要比较连续的动作和较短的间隔(尤其是对于基于会话的深层网页),因此,队列包括普通队列和优先队列,基于会话的网页的URL被存储在优先队列中,以具有较高的优先权。
为描述方便,首先仅对访问模式本身相关的抓取流程进行描述。
S41:根据响应参数槽中的提取位置信息,从起始网页的http响应消息中提取响应参数,并将其填充到响应参数槽中;
S42:根据请求参数槽与响应参数槽的匹配关系,将与其匹配的响应参数槽中的响应参数,填充到请求参数槽中作为请求参数;
S43:根据对应于同一请求的一个或更多个请求参数槽的请求参数,生成请求消息并将其加入优先队列,以由网页抓取器优先抓取;
S44:根据请求参数槽与响应参数槽的对应关系,找到与所述一个或更多个请求参数槽对应的响应参数槽,并按照找到的响应参数槽中的提取位置信息,从所抓取的响应消息中提取响应参数,并将所提取的响应参数填充到响应参数槽中;以及
重复上述步骤S42-S44,直至获得访问模式中的最后一级的响应消息,将该响应消息作为所抓取的网页。
上述方法适用于对深层网页的抓取。在既能抓取深层网页又能抓取表层网页的网页抓取方法中,可以设定适当的触发条件触发深层网页的抓取。深层网页抓取的起始网页必然是表层网页,因此,可以在起始网页的网址满足预定的触发条件时,触发相应的访问模式来进行网页的抓取。
下面,将介绍访问模式的获取方法。
大体上,访问模式可通过如下步骤获得:收集与网页的访问相关的http消息流;以及从所收集的http消息流中,根据起始表层网页的http响应消息和目标http请求消息,确定与目标http请求消息相关的访问模式。
当用户在浏览器上访问深层网页的时候,http消息的收集来自观察到的http流。这些观察数据可以从代理或者浏览器的插件中收集到。所收集的http消息流可由请求参数槽和响应参数槽表征。
具体地,访问模式的确定包括如下步骤:
S61:搜索与目标http请求消息所对应的请求参数槽相匹配的响应参数槽;
S62:搜索与该响应参数槽对应的请求参数槽;
S63:搜索与该请求参数槽匹配的响应参数槽;
S64:重复步骤S62-S63直至所搜索到的响应参数槽对应于起始网页的http响应消息;
S65:得到连接对应于起始网页的http响应消息的响应参数槽与对应于目标http请求消息的请求参数槽的路径;以及
S66:验证所得到的路径,以得到访问模式。
为了理解访问模式的确定,首先要介绍一下网页的DOM树。
在用户的操作下,浏览器发出http请求消息,作为请求的响应,服务器发来html网页。浏览器解析收到的html网页,然后基于被解析的结果发出接下来的http请求消息,因此观察到的http消息是根据发送时间来排序的。除此之外,在请求头中的referer字段指出了哪个网页发送了该请求。基于这两个事实,可以创建森林来反映这种http消息中的层次关系。正如图2所示,所有属于a.html的链接实际上根据访问顺序建立一棵树。在图2中,b.html被加载并且被插入到a.html的DOM中,这是由j.js在a.html加载的时候自动进行的,是一个典型的Ajax的应用。b.html的referer字段仍然是a.html。并且c.jsp是在浏览器中由用户的点击所提交的表单。在这个场景下,c.jsp的请求的参数来自a.html,也可能来自b.html。这棵树有两个特征:(1)如果一个节点有子节点,那么仅仅最后一个子节点有后代;(2)先根遍历的结果,在图2中是a.html→1.css→j.js→b.html→c.jsp→......,正是http消息访问的顺序。因此,这棵树反映了在深层网页的访问模式中的请求的顺序。参数能从最高的节点一直传递到底下的节点。从观察数据中,能够创建几棵这样的树。
访问模式的确定基于起始(表层)网页的http响应消息和目标http消息。目标http消息包括目标http请求消息和目标http响应消息。目标http响应消息就是用户所感兴趣的网页。搜索步骤可采用两种搜索策略,即精确搜索和模糊搜索。这两种搜索策略的区别在于搜索的范围不同。
下面将具体描述步骤S61-S66。
从目标http请求消息开始,搜索如下的响应参数槽:该响应参数槽中的响应参数的名称和值匹配目标http请求消息的请求参数的名称和值(即步骤S61)。如果找到了这样的响应参数槽,则将该响应参数槽所对应的http消息按时间顺序加入到访问模式中。此时,与该响应参数槽对应的请求参数槽也被加入到访问模式中。在目标http请求消息中的每个请求参数槽都找到与其匹配的响应参数槽之后,新加入的http请求消息将作为新的目标http请求消息,重复上述寻找匹配关系的步骤,直到起始(表层)网页的http响应消息(即步骤S63-S64)。注意,每次搜索迭代中,都是在收集到的http消息集合中,按照时间上的相反顺序,一个接一个地搜索http消息,直到起始的消息。即反向遍历访问模式中的每个http消息,直到起初http消息。经过上述步骤,所有的与访问模式相关的http消息和它们之间的关系都可以被找到,即得到连接对应于起始网页的http响应消息的响应参数槽与对应于目标http请求消息的请求参数槽的路径(即步骤S65),显然上述路径很可能是不唯一的。因此,还需要验证所得到的路径,以得到访问模式。一种验证的方式是:所收集的http消息对应用户不止一次对同一深层网页的访问。因而,可以针对多次访问进行多次上述步骤S61-S65的搜索过程。在多次搜索结果中重复的路径应被判断为正确的反映了访问模式的路径。如果有多条路径被多次重复,则可随机选择其中之一作为访问模式。
下面简介精确搜索和模糊搜索的搜索范围的不同。
上述搜索过程中的候选的响应参数槽是从网页分析的结果和http响应消息的头字段中生成的,例如:(1)在网页中所有的input和textarea元素;(2)表单的动作(action)的URL;(3)消息头中的Set-Cookie字段;(4)URL的查询(query)部分;(5)其他已知的数据格式:json,xml等。
精确搜索就是基于这些候选的响应参数槽。范围限制在目标http消息的祖先和他们的孩子。
但是,随着Javascript的存在,有许多例外情况。例如,(1)下一个请求的referer字段可以被修改;(2)在提交表单的时候,参数的值可以被动态地改变。对于上述情况,可能会在采用精确搜索时无法找到匹配的响应参数槽。或者精确搜索得到的多条路径在验证步骤中均验证失败。模糊搜索正是为了解决这一问题而设计的,其搜索范围扩大到所有的在目标消息之前的响应。所有的元素的属性将被检查。如果所有元素的属性都被检查也无法找到匹配的响应参数槽,则将会采用字符串匹配的方式。
显然,在精确搜索验证失败的情况下,会采用模糊搜索和进行模糊搜索结果的验证,如果模糊搜索的结果也都验证失败,则整个访问模式的确定过程失败。
由于根据本发明的网页抓取方法基于访问模式,因此,只要网站没有较大的改动,访问模式基本不变。如果网站内容的改变导致访问模式的改变,只需要重新确定访问模式以进行更新即可。
下面将描述根据本发明的一个实施例的爬虫。图3示出了根据本发明一个实施例的用于抓取网页的爬虫,所述爬虫包括:URL注入器,被配置为将种子URL注入到Web数据库中;URL生成器,被配置为基于Web数据库生成URL列表;URL馈送器,被配置为维护队列并按队列的顺序将URL列表中的URL馈送给网页抓取器;网页抓取器,被配置为按照网页对应的访问模式、根据被馈送的URL来对网页进行抓取;以及Web数据库更新器,被配置为基于所抓取的网页,更新Web数据库中URL的状态以及注入新发现的URL到Web数据库中;其中,所述访问模式包括请求参数槽、响应参数槽、以及请求参数槽与响应参数槽的对应关系,请求参数槽中包括请求参数、以及请求参数槽与响应参数槽的匹配关系,响应参数槽中包括响应参数、以及关于响应参数在http响应消息中的提取位置的提取位置信息。其中,Web数据库存储URL的状态和一些附加的信息。URL生成,采集和更新Web数据库的过程称为一轮。一轮接着一轮,爬虫可以遍历整个网站。爬虫还包括触发器,被配置为在起始网页的网址满足预定的触发条件(如可见的URL特征)时,触发相应的访问模式来进行网页的抓取。深层网页的入口在表层网页中,因此触发器决定了在表层网页中的哪些网页中触发访问模式。适当的触发条件的设定是本领域技术人员根据本领域技术知识能够设计的,在此不再赘述。
爬虫还包括访问模式生成器,其被配置为:收集与网页的访问相关的http消息流;以及从所收集的http消息流中,根据起始网页的http响应消息和目标http请求消息,确定与目标http请求消息相关的访问模式。
其中,访问模式生成器被进一步配置为:从与目标http请求消息所对应的请求参数槽开始,搜索与所述请求参数槽匹配的响应参数槽以及与所述响应参数槽对应的请求参数槽,直至所搜索到的响应参数槽对应于起始网页的http响应消息,从而得到连接对应于起始网页的http响应消息的响应参数槽与对应于目标http请求消息的请求参数槽的路径以及验证所得到的路径,以得到访问模式。
本发明对传统爬虫的改进主要在以下两个方面:基于会话的抓取和网站定制化。
会话经常被用于访问服务。会话实际上是一小片存在于服务器上的内存,往往需要先进行登录,且通常登录后有过期时间。因此,如果爬虫不提高与会话相关的URL的优先级,一旦会话过期了,对相关URL的采集将会失败。为此,应该控制会话相关的URL的优先级,使这些URL被尽可能快地采集。根据本发明的爬虫中,队列包括普通队列和优先队列,基于会话的网页的URL被存储在优先队列中,以具有较高的优先权。相应地,为了检测已经采集过的URL或者更新时间还未到的URL,可以设置有对Web数据库进行实时查询的模块,以去除这两种URL。
网站定制化主要体现在如上所述的访问模式的获取和应用。图3中的网页抓取器,对于表层网页进行普通的采集流程,对于深层网页,将在触发器触发时,按照网页对应的访问模式、根据被馈送的URL来对网页进行抓取。每个网站拥有若干个访问模式。访问模式可能由若干个请求组成,包括中间请求和最终的请求。当请求参数槽被根据相应的响应参数槽更新后,中间请求将被放进网页抓取器立即采集。
网页抓取器被进一步配置为:根据请求参数槽与响应参数槽的匹配关系,将与其匹配的响应参数槽中的响应参数,填充到请求参数槽中作为请求参数;以及根据对应于同一请求的一个或更多个请求参数槽中的请求参数,生成请求消息并将其加入优先队列,以由网页抓取器优先抓取。
网页抓取器被进一步配置为:发送请求消息,以得到对应的响应消息;根据请求参数槽与响应参数槽的对应关系,找到对应的响应参数槽;以及按照所述响应参数槽中的提取位置信息,从所得到的响应消息中提取响应参数,并将所提取的响应参数填充到该响应参数槽中。
下面将参考图5描述根据本发明的一个实施例的爬虫实施网页抓取方法的流程。
图5示出了根据本发明的爬虫实施网页抓取方法的示例流程图。
URL馈送器向网页抓取器馈送URL。如上所述,深层网页起始于表层网页。因此,在步骤S 500,网页抓取器首先对表层网页进行抓取,其中根据URL生成http请求消息,发送http请求消息,获得http响应消息等。如现有技术中所公知的那样,网页抓取器对于每个要抓取的URL都会初始化采集上下文(fetch context),采集上下文用于维护与URL的采集相关的参数,如采集的历史信息、统计信息等。可以根据网页配置等初始化采集上下文。在本发明中,针对深层网页设计了访问模式,为了维护相关的信息,设计了会话变量,会话变量作为数据结构可被加入到采集上下文中,也即根据本发明,针对深层网页的URL,采集上下文包括会话变量。会话变量包括访问模式的实例、统计信息以及其他相关信息。对应于一个访问模式,创建一个会话变量,以维护相关的信息。
因此,在步骤S501,判断采集会话是否存在。如果之前馈送的URL是表层网页的URL,则尚无采集会话,判断结果为否,在步骤S502创建新会话,其中,创建新的会话变量。如果步骤S501的判断结果为是,则表明已经开始了对深层网页的抓取,之前网页抓取器被馈送的已经是深层网页的URL,此时,处理进行到步骤S503。或者,步骤S501判断结果为否,处理经由步骤S502到达步骤S503。
在步骤S503,取得访问模式中的下一个请求。如果经由步骤S502到达步骤S503,显然取得的是访问模式中的第一个请求。如果经由步骤S501到达步骤S503,则取得的是访问模式中的下一个请求。如上所述,访问模式是基于按时间顺序排列的http消息(包括http请求消息和http响应消息),因此,同样按时间顺序创建了相应的http请求参数槽和http响应参数槽。在步骤S503,取得访问模式中的下一个请求即是取得时间上的下一个请求。当然如果此时已经进行到了访问模式的最后,可能取得的结果为空。因此,在步骤S504判断是否所取得的结果为非空,即是否仍存在访问模式中的下一个请求。如果步骤S504判断结果为否,说明已经进行到访问模式的最后,因此,由网页抓取器进行新的URL的抓取。如果步骤S504判断结果为是,则说明存在访问模式中的下一个请求,因此,在步骤S505,根据之前抓取的http响应消息更新响应参数槽,并根据http响应参数槽更新http请求参数槽,根据http请求参数槽生成http请求消息。至此,访问模式中的一个新http请求消息被生成。因此,在步骤S506,将http请求消息发送给URL馈送器。URL馈送器将访问模式相关的URL放在其优先队列中,以优先抓取。应注意,在步骤S506,还将会话变量与http请求消息一起发送给URL馈送器。这样,会话变量可在该访问模式的多次抓取中共享信息。虽然,网页抓取器将访问模式相关的http请求消息和会话变量放入优先队列,但并不保证访问模式相关的http请求消息在网页抓取器中连续地、在同一线程中抓取。但是,会话变量使得可以在访问模式的多次抓取中共享信息。访问模式的所有http请求消息和http响应消息都被遍历后,最后获得的网页即为所希望得到的深层网页。
根据本发明的网页抓取方法和爬虫,能够有效地处理深层网页的采集问题,不依赖于特定类型的浏览器,并且不受Javascript的干扰,能够处理会话的抓取,并且半自动地获取访问模式,消耗较少的人工。
此外,这里尚需指出的是,上述装置中各个组成模块、单元可以通过软件、固件、硬件或其组合的方式进行配置。配置可使用的具体手段或方式为本领域技术人员所熟知,在此不再赘述。在通过软件或固件实现的情况下,从存储介质或网络向具有专用硬件结构的计算机(例如图6所示的通用计算机600)安装构成该软件的程序,该计算机在安装有各种程序时,能够执行各种功能等。
图6示出可用于实施根据本发明实施例的方法和设备的计算机的示意性框图。
在图6中,中央处理单元(CPU)601根据只读存储器(ROM)602中存储的程序或从存储部分608加载到随机存取存储器(RAM)603的程序执行各种处理。在RAM 603中,还根据需要存储当CPU 601执行各种处理等等时所需的数据。CPU 601、ROM 602和RAM 603经由总线604彼此连接。输入/输出接口605也连接到总线604。
下述部件连接到输入/输出接口605:输入部分606(包括键盘、鼠标等等)、输出部分607(包括显示器,比如阴极射线管(CRT)、液晶显示器(LCD)等,和扬声器等)、存储部分608(包括硬盘等)、通信部分609(包括网络接口卡比如LAN卡、调制解调器等)。通信部分609经由网络比如因特网执行通信处理。根据需要,驱动器610也可连接到输入/输出接口605。可拆卸介质611比如磁盘、光盘、磁光盘、半导体存储器等等可以根据需要被安装在驱动器610上,使得从中读出的计算机程序根据需要被安装到存储部分608中。
在通过软件实现上述系列处理的情况下,从网络比如因特网或存储介质比如可拆卸介质611安装构成软件的程序。
本领域的技术人员应当理解,这种存储介质不局限于图6所示的其中存储有程序、与设备相分离地分发以向用户提供程序的可拆卸介质611。可拆卸介质611的例子包含磁盘(包含软盘(注册商标))、光盘(包含光盘只读存储器(CD-ROM)和数字通用盘(DVD))、磁光盘(包含迷你盘(MD)(注册商标))和半导体存储器。或者,存储介质可以是ROM 602、存储部分608中包含的硬盘等等,其中存有程序,并且与包含它们的设备一起被分发给用户。
本发明还提出一种存储有机器可读取的指令代码的程序产品。所述指令代码由机器读取并执行时,可执行上述根据本发明实施例的方法。
相应地,用于承载上述存储有机器可读取的指令代码的程序产品的存储介质也包括在本发明的公开中。所述存储介质包括但不限于软盘、光盘、磁光盘、存储卡、存储棒等等。
在上面对本发明具体实施例的描述中,针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。
应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。
此外,本发明的方法不限于按照说明书中描述的时间顺序来执行,也可以按照其他的时间顺序地、并行地或独立地执行。因此,本说明书中描述的方法的执行顺序不对本发明的技术范围构成限制。
尽管上面已经通过对本发明的具体实施例的描述对本发明进行了披露,但是,应该理解,上述的所有实施例和示例均是示例性的,而非限制性的。本领域的技术人员可在所附权利要求的精神和范围内设计对本发明的各种修改、改进或者等同物。这些修改、改进或者等同物也应当被认为包括在本发明的保护范围内。
附记
附记1.一种网页抓取方法,包括如下步骤:
将种子URL注入到Web数据库中;
基于Web数据库生成URL列表;
按队列的顺序将URL列表中的URL馈送给网页抓取器;
由网页抓取器、按照网页对应的访问模式、根据被馈送的URL来对网页进行抓取;以及
基于所抓取的网页,更新Web数据库中URL的状态以及注入新发现的URL;
其中,所述访问模式包括请求参数槽、响应参数槽、以及请求参数槽与响应参数槽的对应关系,请求参数槽中包括请求参数、以及请求参数槽与响应参数槽的匹配关系,响应参数槽中包括响应参数、以及关于响应参数在ht tp响应消息中的提取位置的提取位置信息。
附记2.如附记1所述的网页抓取方法,其中,队列包括普通队列和优先队列,基于会话的网页的URL被存储在优先队列中,以具有较高的优先权。
附记3.如附记1所述的网页抓取方法,其中,在起始网页的网址满足预定的触发条件时,触发相应的访问模式来进行网页的抓取。
附记4.如附记2所述的网页抓取方法,其中,所述按照网页对应的访问模式进行抓取包括:
根据请求参数槽与响应参数槽的匹配关系,将与其匹配的响应参数槽中的响应参数,填充到请求参数槽中作为请求参数;以及
根据对应于同一请求的一个或更多个请求参数槽中的请求参数,生成请求消息并将其加入优先队列,以由网页抓取器优先抓取。
附记5.如附记4所述的网页抓取方法,其中,所述按照网页对应的访问模式进行抓取还包括:
发送请求消息,以得到对应的响应消息;
根据请求参数槽与响应参数槽的对应关系,找到对应的响应参数槽;以及
按照所述响应参数槽中的提取位置信息,从所得到的响应消息中提取响应参数,并将所提取的响应参数填充到该响应参数槽中。
附记6.如附记1所述的网页抓取方法,其中,所述访问模式是通过如下步骤获得的:
收集与网页的访问相关的http消息流;以及
从所收集的http消息流中,根据起始网页的http响应消息和目标http请求消息,确定与目标http请求消息相关的访问模式。
附记7.如附记6所述的网页抓取方法,其中,所述确定步骤包括:
从与目标http请求消息所对应的请求参数槽开始,搜索与所述请求参数槽匹配的响应参数槽以及与所述响应参数槽对应的请求参数槽,直至所搜索到的响应参数槽对应于起始网页的http响应消息,从而得到连接对应于起始网页的http响应消息的响应参数槽与对应于目标http请求消息的请求参数槽的路径;以及
验证所得到的路径,以得到访问模式。
附记8.一种爬虫,用于抓取网页,包括:
URL注入器,被配置为将种子URL注入到Web数据库中;
URL生成器,被配置为基于Web数据库生成URL列表;
URL馈送器,被配置为按队列的顺序将URL列表中的URL馈送给网页抓取器;
网页抓取器,被配置为按照网页对应的访问模式、根据被馈送的URL来对网页进行抓取;以及
Web数据库更新器,被配置为基于所抓取的网页,更新Web数据库中URL的状态以及注入新发现的URL;
其中,所述访问模式包括请求参数槽、响应参数槽、以及请求参数槽与响应参数槽的对应关系,请求参数槽中包括请求参数、以及请求参数槽与响应参数槽的匹配关系,响应参数槽中包括响应参数、以及关于响应参数在http响应消息中的提取位置的提取位置信息。
附记9.如附记8所述的爬虫,其中,队列包括普通队列和优先队列,基于会话的网页的URL被存储在优先队列中,以具有较高的优先权。
附记10.如附记8所述的爬虫,其中,所述爬虫还包括触发器,被配置为在起始网页的网址满足预定的触发条件时,触发相应的访问模式来进行网页的抓取。
附记11.如附记9所述的爬虫,其中,所述网页抓取器被进一步配置为:
根据请求参数槽与响应参数槽的匹配关系,将与其匹配的响应参数槽中的响应参数,填充到请求参数槽中作为请求参数;以及
根据对应于同一请求的一个或更多个请求参数槽中的请求参数,生成请求消息并将其加入优先队列,以由网页抓取器优先抓取。
附记12.如附记11所述的爬虫,其中,所述网页抓取器被进一步配置为:
发送请求消息,以得到对应的响应消息;
根据请求参数槽与响应参数槽的对应关系,找到对应的响应参数槽;以及
按照所述响应参数槽中的提取位置信息,从所得到的响应消息中提取响应参数,并将所提取的响应参数填充到该响应参数槽中。
附记13.如附记8所述的爬虫,其中,所述爬虫还包括访问模式生成器,其被配置为:
收集与网页的访问相关的http消息流;以及
从所收集的http消息流中,根据起始网页的http响应消息和目标http请求消息,确定与目标http请求消息相关的访问模式。
附记14.如附记13所述的爬虫,其中,所述访问模式生成器被进一步配置为:
从与目标http请求消息所对应的请求参数槽开始,搜索与所述请求参数槽匹配的响应参数槽以及与所述响应参数槽对应的请求参数槽,直至所搜索到的响应参数槽对应于起始网页的http响应消息,从而得到连接对应于起始网页的http响应消息的响应参数槽与对应于目标http请求消息的请求参数槽的路径;以及
验证所得到的路径,以得到访问模式。
Claims (10)
1.一种网页抓取方法,包括如下步骤:
将种子URL注入到Web数据库中;
基于Web数据库生成URL列表;
按队列的顺序将URL列表中的URL馈送给网页抓取器;
由网页抓取器、按照网页对应的访问模式、根据被馈送的URL来对网页进行抓取;以及
基于所抓取的网页,更新Web数据库中URL的状态以及注入新发现的URL;
其中,所述访问模式包括请求参数槽、响应参数槽、以及请求参数槽与响应参数槽的对应关系,请求参数槽中包括请求参数、以及请求参数槽与响应参数槽的匹配关系,响应参数槽中包括响应参数、以及关于响应参数在http响应消息中的提取位置的提取位置信息。
2.如权利要求1所述的网页抓取方法,其中,队列包括普通队列和优先队列,基于会话的网页的URL被存储在优先队列中,以具有较高的优先权。
3.如权利要求1所述的网页抓取方法,其中,在起始网页的网址满足预定的触发条件时,触发相应的访问模式来进行网页的抓取。
4.如权利要求2所述的网页抓取方法,其中,所述按照网页对应的访问模式进行抓取包括:
根据请求参数槽与响应参数槽的匹配关系,将与其匹配的响应参数槽中的响应参数,填充到请求参数槽中作为请求参数;以及
根据对应于同一请求的一个或更多个请求参数槽中的请求参数,生成请求消息并将其加入优先队列,以由网页抓取器优先抓取。
5.如权利要求4所述的网页抓取方法,其中,所述按照网页对应的访问模式进行抓取还包括:
发送请求消息,以得到对应的响应消息;
根据请求参数槽与响应参数槽的对应关系,找到对应的响应参数槽;以及
按照所述响应参数槽中的提取位置信息,从所得到的响应消息中提取响应参数,并将所提取的响应参数填充到该响应参数槽中。
6.如权利要求1所述的网页抓取方法,其中,所述访问模式是通过如下步骤获得的:
收集与网页的访问相关的http消息流;以及
从所收集的http消息流中,根据起始网页的http响应消息和目标http请求消息,确定与目标http请求消息相关的访问模式。
7.如权利要求6所述的网页抓取方法,其中,所述确定步骤包括:
从与目标http请求消息所对应的请求参数槽开始,搜索与所述请求参数槽匹配的响应参数槽以及与所述响应参数槽对应的请求参数槽,直至所搜索到的响应参数槽对应于起始网页的http响应消息,从而得到连接对应于起始网页的http响应消息的响应参数槽与对应于目标http请求消息的请求参数槽的路径;以及
验证所得到的路径,以得到访问模式。
8.一种爬虫,用于抓取网页,包括:
URL注入器,被配置为将种子URL注入到Web数据库中;
URL生成器,被配置为基于Web数据库生成URL列表;
URL馈送器,被配置为按队列的顺序将URL列表中的URL馈送给网页抓取器;
网页抓取器,被配置为按照网页对应的访问模式、根据被馈送的URL来对网页进行抓取;以及
Web数据库更新器,被配置为基于所抓取的网页,更新Web数据库中URL的状态以及注入新发现的URL;
其中,所述访问模式包括请求参数槽、响应参数槽、以及请求参数槽与响应参数槽的对应关系,请求参数槽中包括请求参数、以及请求参数槽与响应参数槽的匹配关系,响应参数槽中包括响应参数、以及关于响应参数在ht tp响应消息中的提取位置的提取位置信息。
9.如权利要求8所述的爬虫,其中,所述网页抓取器被进一步配置为:
根据请求参数槽与响应参数槽的匹配关系,将与其匹配的响应参数槽中的响应参数,填充到请求参数槽中作为请求参数;以及
根据对应于同一请求的一个或更多个请求参数槽中的请求参数,生成请求消息并将其加入所述队列中的优先队列,以由网页抓取器优先抓取。
10.如权利要求9所述的爬虫,其中,所述网页抓取器被进一步配置为:
发送请求消息,以得到对应的响应消息;
根据请求参数槽与响应参数槽的对应关系,找到对应的响应参数槽;以及
按照所述响应参数槽中的提取位置信息,从所得到的响应消息中提取响应参数,并将所提取的响应参数填充到该响应参数槽中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210056060.6A CN103294732B (zh) | 2012-03-05 | 2012-03-05 | 网页抓取方法及爬虫 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210056060.6A CN103294732B (zh) | 2012-03-05 | 2012-03-05 | 网页抓取方法及爬虫 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103294732A true CN103294732A (zh) | 2013-09-11 |
CN103294732B CN103294732B (zh) | 2016-08-03 |
Family
ID=49095618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210056060.6A Expired - Fee Related CN103294732B (zh) | 2012-03-05 | 2012-03-05 | 网页抓取方法及爬虫 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103294732B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103605735A (zh) * | 2013-11-19 | 2014-02-26 | 北京国双科技有限公司 | 网站数据分析方法及装置 |
CN104462580A (zh) * | 2014-12-24 | 2015-03-25 | 携程计算机技术(上海)有限公司 | 基于直线生成算法的爬虫方法及爬虫系统 |
CN105160209A (zh) * | 2015-08-31 | 2015-12-16 | 佛山市恒南微科技有限公司 | 一种实现区域企业软件著作权公告摸底与管理的系统 |
CN105608134A (zh) * | 2015-12-18 | 2016-05-25 | 盐城工学院 | 一种基于多线程的网络爬虫系统及其网页爬取方法 |
CN106547774A (zh) * | 2015-09-21 | 2017-03-29 | 北京国双科技有限公司 | 网站内容的检测方法及装置 |
CN106547775A (zh) * | 2015-09-21 | 2017-03-29 | 北京国双科技有限公司 | 网站内容的检测方法及装置 |
CN110020066A (zh) * | 2017-07-31 | 2019-07-16 | 北京国双科技有限公司 | 一种往爬虫平台注任务的方法及装置 |
CN110837614A (zh) * | 2019-11-05 | 2020-02-25 | 上海嘉道信息技术有限公司 | 一种高效地生成网页信息抽取规则的方法及系统 |
CN110968744A (zh) * | 2018-09-30 | 2020-04-07 | 中国移动通信有限公司研究院 | 一种资源查询方法及装置、设备、存储介质 |
CN112395485A (zh) * | 2021-01-19 | 2021-02-23 | 广州博士信息技术研究院有限公司 | 一种政策大数据挖掘方法、装置、计算机设备及存储介质 |
CN113905092A (zh) * | 2021-09-28 | 2022-01-07 | 盐城金堤科技有限公司 | 一种确定可复用代理队列的方法、装置、终端及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080313181A1 (en) * | 2007-06-14 | 2008-12-18 | International Business Machines Corporation | Defining a web crawl space |
CN102254027A (zh) * | 2011-07-29 | 2011-11-23 | 四川长虹电器股份有限公司 | 批量获取网页内容的方法 |
CN102355488A (zh) * | 2011-08-15 | 2012-02-15 | 北京星网锐捷网络技术有限公司 | 爬虫种子获取方法与设备及爬虫爬取方法与设备 |
-
2012
- 2012-03-05 CN CN201210056060.6A patent/CN103294732B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080313181A1 (en) * | 2007-06-14 | 2008-12-18 | International Business Machines Corporation | Defining a web crawl space |
CN102254027A (zh) * | 2011-07-29 | 2011-11-23 | 四川长虹电器股份有限公司 | 批量获取网页内容的方法 |
CN102355488A (zh) * | 2011-08-15 | 2012-02-15 | 北京星网锐捷网络技术有限公司 | 爬虫种子获取方法与设备及爬虫爬取方法与设备 |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103605735A (zh) * | 2013-11-19 | 2014-02-26 | 北京国双科技有限公司 | 网站数据分析方法及装置 |
CN104462580A (zh) * | 2014-12-24 | 2015-03-25 | 携程计算机技术(上海)有限公司 | 基于直线生成算法的爬虫方法及爬虫系统 |
CN104462580B (zh) * | 2014-12-24 | 2017-09-19 | 上海携程商务有限公司 | 基于直线生成算法的爬虫方法及爬虫系统 |
CN105160209A (zh) * | 2015-08-31 | 2015-12-16 | 佛山市恒南微科技有限公司 | 一种实现区域企业软件著作权公告摸底与管理的系统 |
CN106547774B (zh) * | 2015-09-21 | 2020-02-28 | 北京国双科技有限公司 | 网站内容的检测方法及装置 |
CN106547774A (zh) * | 2015-09-21 | 2017-03-29 | 北京国双科技有限公司 | 网站内容的检测方法及装置 |
CN106547775A (zh) * | 2015-09-21 | 2017-03-29 | 北京国双科技有限公司 | 网站内容的检测方法及装置 |
CN106547775B (zh) * | 2015-09-21 | 2020-03-03 | 北京国双科技有限公司 | 网站内容的检测方法及装置 |
CN105608134A (zh) * | 2015-12-18 | 2016-05-25 | 盐城工学院 | 一种基于多线程的网络爬虫系统及其网页爬取方法 |
CN105608134B (zh) * | 2015-12-18 | 2019-06-14 | 盐城工学院 | 一种基于多线程的网络爬虫系统及其网页爬取方法 |
CN110020066A (zh) * | 2017-07-31 | 2019-07-16 | 北京国双科技有限公司 | 一种往爬虫平台注任务的方法及装置 |
CN110020066B (zh) * | 2017-07-31 | 2021-09-07 | 北京国双科技有限公司 | 一种往爬虫平台注任务的方法及装置 |
CN110968744A (zh) * | 2018-09-30 | 2020-04-07 | 中国移动通信有限公司研究院 | 一种资源查询方法及装置、设备、存储介质 |
CN110968744B (zh) * | 2018-09-30 | 2023-09-05 | 中国移动通信有限公司研究院 | 一种资源查询方法及装置、设备、存储介质 |
CN110837614A (zh) * | 2019-11-05 | 2020-02-25 | 上海嘉道信息技术有限公司 | 一种高效地生成网页信息抽取规则的方法及系统 |
CN112395485A (zh) * | 2021-01-19 | 2021-02-23 | 广州博士信息技术研究院有限公司 | 一种政策大数据挖掘方法、装置、计算机设备及存储介质 |
CN113905092A (zh) * | 2021-09-28 | 2022-01-07 | 盐城金堤科技有限公司 | 一种确定可复用代理队列的方法、装置、终端及存储介质 |
CN113905092B (zh) * | 2021-09-28 | 2024-03-22 | 盐城天眼察微科技有限公司 | 一种确定可复用代理队列的方法、装置、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103294732B (zh) | 2016-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103294732A (zh) | 网页抓取方法及爬虫 | |
CN109543086B (zh) | 一种面向多数据源的网络数据采集与展示方法 | |
US20170257390A1 (en) | System and methods for scalably identifying and characterizing structural differences between document object models | |
CN102355488B (zh) | 爬虫种子获取方法与设备及爬虫爬取方法与设备 | |
US7827166B2 (en) | Handling dynamic URLs in crawl for better coverage of unique content | |
US20010032205A1 (en) | Method and system for extraction and organizing selected data from sources on a network | |
CN101853300B (zh) | 一种视频下载服务网站的识别、评估方法及系统 | |
US20080235567A1 (en) | Intelligent form filler | |
CN106776983B (zh) | 搜索引擎优化装置和方法 | |
CN101971172A (zh) | 移动站点地图 | |
US20120226685A1 (en) | System for User Driven Ranking of Web Pages | |
CN102158365A (zh) | 一种网络日志挖掘中的用户聚类方法及系统 | |
CN104182412A (zh) | 一种网页爬取方法及系统 | |
US20050216845A1 (en) | Utilizing cookies by a search engine robot for document retrieval | |
CN104881607A (zh) | 一种基于模拟浏览器行为的xss漏洞检测系统 | |
CN107590236B (zh) | 一种面向建筑施工企业的大数据采集方法和系统 | |
CN106126688A (zh) | 基于web内容和结构挖掘的智能网络信息采集系统、方法 | |
CN103164446A (zh) | 一种网页请求信息的响应方法及装置 | |
CN112989157A (zh) | 一种检测爬虫请求的方法和装置 | |
Sharma et al. | A novel architecture for deep web crawler | |
CN106095674B (zh) | 一种网站自动化测试方法和装置 | |
CN113392306A (zh) | 信息交互方法、信息交互装置、终端及存储介质 | |
CN112612943A (zh) | 一种基于异步处理框架的具有自动测试功能的数据爬取方法 | |
Dincturk | Model-based crawling-an approach to design efficient crawling strategies for rich internet applications | |
CN104281693A (zh) | 一种语义搜索方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160803 Termination date: 20180305 |