以用户历史优化web爬取的制作方法
【专利摘要】一种优雅管理器基于由客户端web浏览器上的插件或工具栏所生成并且发送的历史上的日志数据来估计到站点的业务量。所述历史上的日志数据详述所述web浏览器访问不同web站点的日期和时间,所述历史上的日志数据被用来理解特定web站点什么时间帧是忙碌的并且所述web站点什么时间帧不是忙碌的。对于web站点的针对不同时间帧的爬取速率基于所述历史上的日志数据被确定,并且web爬取器被调度来根据所述爬取速率来爬取所述web站点以便最小化web爬取器请求对站点崩溃有责任的机会。
【专利说明】以用户历史优化WEB爬取
【背景技术】
[0001]搜索引擎使用web爬取器来理解万维网(“web”)上的文档。Web爬取器是持久地搜索web从而通过它们的内容(例如,关键词、文本、互惠链接、视频、图像、音频等等)索引web站点的程序。因为web站点是不断地改变的,所以web爬取器必须重复地爬取站点以便索引最新鲜的内容。然而,重复性地访问web站点对于站点的所有者造成问题,因为托管站点的服务器可能仅能够同时服务特定数目的用户/请求者。所以在峰值业务量周期期间爬取站点(例如,用于在特定股票交易的开市钟附近交易股票的站点)对于站点的稳定性来说变得危险。在站点的业务量的不稳定性质的情况下平衡索引新鲜内容的需要对于现代web爬取器来说是困难任务。
[0002]站点所有者设法控制web爬取器访问他们的站点的速率的传统方式是通过称作“robot, txt”文件的指导文本文件。Robot, txt文件指示web爬取器能够访问站点的速率(“爬取速率”)和web爬取器必须在获取之间等待的延迟(“爬取延迟”)。爬取速率和延迟两者是预定静态值,其因此不允许基于站点业务量的调整。
【发明内容】
[0003]本
【发明内容】
被提供来以简化的形式介绍概念的选择,所述概念下面在【具体实施方式】中被进一步描述。本
【发明内容】
不旨在标识所要求保护的主题的关键特征或必要特征,它也不旨在被用来帮助确定所要求保护的主题的范围。
[0004]一个方面针对在web爬取器的管理和调度中使用从客户端计算设备上的web浏览器发送的日志数据。日志数据向web浏览器的用户指示web历史。来自许多不同客户端的日志数据被接收和聚合,并且经聚合的数据日志数据被分析以便理解web站点在不同时间帧期间历史上有多忙碌。假定不同时间帧的历史上的忙碌是将来时间帧在相同时间期间的忙碌的合宜预测器,一个实施例使用在时间帧期间经计算的业务来概率性地估计对于将来时间巾贞来说到web站点的业务量。业务量估计被用来确定对于web爬取器访问和爬取web站点的速率。
[0005]另一方面针对聚合从客户端web浏览器周期性地接收到的日志数据与其它接收到的客户端-浏览器日志数据以便理解web站点在不同时间帧期间的历史上的忙碌。使用聚合日志数据,在一个或多个时间帧期间到web站点的业务量的概率估计被形成,并且web爬取器被设置成以将不超过业务量估计的速率来获取web站点。这样做提供了 web爬取器将不使web站点崩溃的高概率。
[0006]在又一个方面,服务器被配置成执行管理web爬取器的优雅(politeness)管理器。优雅管理器基于由客户端web浏览器所发送的指示那些浏览器的历史的日志数据来估计在不同时间帧期间对web站点的页面请求的门限频率。基于所述日志数据,优雅管理器调度一个或多个web爬取器以便以低于页面请求的门限频率的速率来访问web站点。Web爬取器根据优雅管理器的调度来访问web站点,从而累积地以低于页面请求的门限频率的速率进行爬取。【专利附图】
【附图说明】
[0007]本发明参考附图在下面被详细地描述,其中:
图1是根据一个实施例的计算设备的框图;
图2是根据一个实施例的用于智能地爬取web站点的联网环境的框图;
图3是根据一个实施例的具有致力于智能地爬取web站点的数个设备的处理流程的
图;
图4是根据一个实施例的用于智能地爬取web站点的流程图的图;以及 图5是根据一个实施例的用于智能地爬取web站点的流程图的图。
【具体实施方式】
[0008]本文中所描述的主题被具体地呈现以满足法定要求。然而,本文中的描述不旨在限制本专利的范围。替代地,所要求保护的主题还可以与其它目前的或将来的技术相结合地被以其它方式体现,以便包括不同的步骤或与在本文档中所描述的步骤类似的步骤的组
口 ο
[0009]如本文所用的那样,“web站点”指的是web页面、web博客、在线视频、在线图像、在线视频以及可能通过网络可访问的各种其它内容。为了帮助本文中说明书的可读性,“web站点”和“站点”被互换地使用。本领域的技术人员应了解,web爬取器能够被配置成分析并且解释web站点上的文本和/或元数据以便理解在线内容。为此目的,文本可以基于文本的底层定义、在网站上的放置或到内容的另一部分的位置而被判断或者加权。判断内容的经典例子是对关键词或短语在web站点上的次数进行计数,从而当关键词是在web站点顶上、在web站点上的标题中或者发现相对地接近于关键词的另一实例时提供更多顺从(deference)。或者,在另一例子中,视频的标题可以针对web站点上的关键词以及放置被分析。存在用于通过web爬取器来推断和判断web站点内容的无数方式,因此不同的实施例可以使用不同的技术。
[0010]一般来说,本文中所描述的实施例针对智能地管理访问web站点的web爬取器。不同的实施例基于对来自客户端上的报告web浏览器或者来自提供网络管理员(webmaster)服务的主机服务器的历史上的日志数据的取样来确定爬取web站点的速率。聚合日志数据允许一些实施例理解哪些时间帧是特别忙碌的并且哪些时间帧不是忙碌的,以便提高或者减少web爬取器访问web站点的频率。当站点历史上尚不是忙碌的时,web爬取器可能被允许比当站点历史上一直忙碌时更频繁地请求web站点。
[0011]至少一个实施例使用从客户端计算设备上的web浏览器发送的日志数据。该日志数据向web浏览器的用户指示web历史,其能够与来自其它web浏览器的日志数据聚合来理解到特定web站点的业务量模式。作为例子,考虑web站点www.microsoft.com。来自许多不同客户端的日志数据被接收和聚合。经聚合的日志数据然后被分析以便理解对于WWW.microsoft.com来说什么时间典型地是忙碌的并且什么时间是不太忙碌的。例如,日志数据可以揭示www.microsoft.com在工作日的夜晚比在午饭时间被远不太频繁地访问。理解忙碌且静止的时间允许实施例概率性地估计在不同时间帧期间(诸如在上午1:00-上午2:00)到web站点的业务量。业务量估计然后能够被用来确定web爬取器能够以其访问web站点的速率(爬取速率),并且该爬取速率在一个实施例中被用来调度web站点的爬取。
[0012]另一实施例从web浏览器接收指示浏览器历史的日志数据。浏览器历史可以包括这样的数据,诸如被浏览器历史上访问的web站点的统一资源定位符(“URL”)、URL被访问的时间和日期、上线URL (即,先前请求的站点的URL)、页面签名以及作为浏览器的历史保存的其它众所周知的属性。实施例还能够访问来自其它web浏览器的日志数据并且聚合所有日志数据以便形成到特定web站点的业务量的智能图片。使用经聚合的日志数据,在一个或多个时间帧期间到该web站点的业务量的概率估计被形成。例如,聚合日志数据可以被分析以便确定web站点接收到从下午12:14-12:42的峰值业务量。
[0013]基于跨越一个或多个时间帧的业务量估计,实施例确定在不危害站点的稳定性的情况下能够在时间帧期间对web站点做出的请求的门限频率。例如,业务量估计可以指示至多每秒二十个请求可以在时间帧期间被做出,然而另一时间帧可以每秒处理三十个请求。一个或多个web爬取器然后能够被命令在第一时间帧期间以低于每秒二十个请求(或者在一些实施例中,大大低于每秒二十个请求)来请求web站点以便确保爬取不使站点倒下。
[0014]在又一个实施例中,服务器被配置成执行“优雅管理器”,其指的是管理web爬取器的计算机可执行指令(被实施为软件、固件、硬件或其组合)。在这个实施例中,优雅管理器基于由客户端web浏览器所发送的日志数据来估计在不同时间帧期间针对web站点的页面请求的门限频率,所述日志数据指示那些浏览器的历史。基于日志数据,优雅管理器调度一个或多个web爬取器以便以低于页面请求的门限频率的速率来访问web站点。web爬取器一其还被实施为软件、固件、硬件或其组合一根据优雅管理器的调度来访问web站点。例如,优雅管理器可以在确定从下午2:00-2:15的十五分钟是历史上忙碌的之后从下午2:00-2:15调度十个web爬取器以每秒一个页面来访问web站点,其证明每秒十五个请求的不太频繁的爬取速率有理。结果,web爬取器以每秒十个请求的速率累积地爬取。这样的例子不意在限制所讨论的实施例,因为例子被纯粹地提供用于说明性目的。
[0015]本文中所提到的实施例可以采取计算机程序产品的形式,所述计算机程序产品包括在一个或多个计算机可读媒体上体现的计算机可用指令。计算机可读媒体包括易失性和非易失性媒体、可拆卸的和不可拆卸的媒体,并且设想了可由数据库读取的媒体。本文中所描述的各种计算设备、应用服务器以及数据库服务器每个都可以包含不同类型的计算机可读媒体以便存储指令和数据。附加地,这些设备还可以配置有各种应用和操作系统。
[0016]通过例子而非限制,计算机可读媒体包括计算机存储媒体。计算机存储媒体或机器可读媒体包括用任何方法或技术实施以用于存储信息的媒体。存储的信息的例子包括计算机可用指令、数据结构、程序模块以及其它数据表示。计算机存储媒体包括但不限于独立于不同的存储媒体或者与不同的存储媒体相结合地使用的随机存取存储器(RAM)、只读存储器(ROM)、电可擦可编程只读存储器(EEPROM)、闪速存储器,所述不同的存储媒体诸如例如光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、全息媒体或其它光盘存储装置、磁盒、磁带、磁盘存储装置或其它磁存储设备。这些存储器设备能够暂时地、临时地或者永久地存储数据。
[0017]如本文所用的那样,“构件”指的是计算机相关的实体,其是硬件、软件(即,执行中的)和/或固件。构件可以以客户端-服务器关系的方式操作以便执行本文中所描述的各种技术。这样的计算通常被称为“云中(in-the-cloud)”计算。例如,构件可以是在处理器上运行的进程、库、子例程和/或计算机或软件和硬件的组合。通过说明,在服务器上运行的应用和服务器两者都可以是构件。一个或多个构件可以驻留在进程内,并且构件能够位于计算设备(诸如服务器)上或者分布在跨越网络通信的两个或更多个计算设备之间。
[0018]特别地首先参考图1,用于实施一个实施例的示范性操作环境被示出并且一般地指定为计算设备100。计算设备100只是适合的计算环境的一个例子,并且不旨在关于本发明的用途或功能性的范围建议任何限制。计算设备100也不应该被解释为具有与说明的构件部分中的任何一个或组合有关的任何依赖或要求。在一个实施例中,计算设备100是个人计算机。但在其它实施例中,计算设备100可以是蜂窝电话、智能电话、数字电话、手持式设备、黑莓(BlackBerry)?、个人数字助理(PDA)或能够执行计算机指令的其它设备。
[0019]实施例可以在正被计算机或其它机器(诸如PDA或其它手持式设备)执行的计算机代码或机器可用指令的一般上下文中被描述,所述计算机代码或机器可用指令包括诸如程序模块之类的计算机可执行指令。一般地,机器可用指令定义各种软件例行程序、程序、对象、构件、数据结构、远程过程调用(RPC)等等。在操作中,这些指令执行特定计算任务,诸如请求并且检索在远程计算设备或服务器上存储的信息。
[0020]本文中所描述的实施例可以在各种系统配置中被实践,所述各种系统配置包括手持式设备、消费电子装置、通用计算机、更专用计算设备等。本文中所描述的实施例还可以被实践在分布式计算环境中,其中任务被通过通信网络被链接的远程处理设备执行。
[0021]继续参考图1,计算设备100包括总线110,其直接地或者间接地耦合以下设备:存储器112、一个或多个处理器114、一个或多个呈现设备116、输入/输出端口 118、输入/输出构件120以及说明性电源122。总线110表示可以是一个或多个总线(诸如地址总线、数据总线或其组合)的东西。尽管为了简洁起见,图1的各种框被用线示出,实际上,刻画各种硬件不是如此清楚的,并且比喻地,线更准确地将是灰色的和模糊的。例如,一个人可以将呈现设备(诸如监视器)认为是I/O构件。并且,处理器具有存储器。本领域的技术人员应理解,这是本领域的本性,并且如先前所提到的那样,图1的图仅仅说明能够结合本发明的一个或多个实施例被使用的示范性计算设备。未在如“工作站”、“服务器”、“膝上型电脑”、“手持式设备”等这样的类别之间被做出区分,因为全部被设想在图1的范围内并且是对“计算设备”的引用。
[0022]计算设备100可以包括各种计算机可读媒体。通过例子而非限制,计算机可读媒体可以包括随机存取存储器(RAM);只读存储器(ROM);电可擦可编程只读存储器(EEPROM);闪速存储器或其它存储器技术;CDR0M、数字多功能盘(DVD)或其它光学或全息媒体;磁盒、磁带、磁盘存储装置或其它磁存储设备。
[0023]存储器112包括形式为易失性和/或非易失性存储器的计算机存储媒体。存储器可以是可拆卸的、不可拆卸的或其组合。示范性硬件设备包括固态存储器、硬盘驱动器、高速缓存器、光盘驱动器等。计算设备100包括一个或多个处理器,其从诸如存储器112或I/
O构件120之类的各种实体读取数据。呈现设备116将数据指示呈现给用户或其它设备。示范性呈现构件包括显示设备、扬声器、打印构件、振动构件等。
[0024]具体地,存储器112可以体现有针对web浏览器应用的指令,所述web浏览器应用诸如微软Internet Explorer?。本领域的技术人员应理解web浏览器的功能性;因此,web浏览器不需要被在本文中详细地讨论。然而,应指出,在存储器112上体现的web浏览器可以配置有各种插件(例如,微软SilverLight?或Adobe Flash)。这样的插件使得web浏览器能够执行在传送的web内容中的各种脚本或标记语言。例如,JavaScript可以被嵌入在web页面内并且可由web浏览器插件在客户端计算设备100上执行。
[0025]I/O端口 118允许计算设备110被逻辑上耦合到包括I/O构件120的其它设备,所述I/O构件120中的一些可以被内置。说明性构件包括话筒、游戏杆、游戏板、卫星碟型天线、扫描器、打印机、无线设备等。
[0026]图2是根据一个实施例的用于智能地爬取web站点的联网环境200的框图。联网环境200包括数个计算设备,其包括客户端计算设备A-Z (被表示为“客户端202”)、优雅管理器204、web托管服务器A-Z (被表示为“主机206”)以及web爬取器服务器A-Z (被表示为“web爬取器208”)。客户端202、主机206以及web爬取器208可以每个都包括一个或多个计算设备,因此原因每个都被用点示出以表示可扩展性。
[0027]虽然客户端202、优雅管理器204、主机206以及web爬取器208在下面被讨论为由单独的计算设备执行,但是一些实施例可以包括这样的设备在同一计算设备上的组合。例如,优雅管理器204可以被执行web爬取器208的同一服务器执行,或者主机206可以被收容在与优雅管理器204相同的服务器中。换句话说,不同的计算设备(客户端和服务器)及其组合可以被本文中所讨论的实施例使用。
[0028]网络环境200中的计算设备跨越网络210与彼此进行通信,所述网络210可以包括任何通信网络,诸如因特网、专用网络、局域网(LAN)、广域网(WAN)等等。网络210可以包括LAN联网环境,其包括通过网络接口或适配器连接的构件。在其中网络210提供WAN联网环境的实施例中,构件可以使用调制解调器来通过WAN建立通信。然而,网络210不限于耦合单独的计算机单元的连接;替代地,网络210还可以包括在服务器与计算设备之间转移数据的子系统。例如,网络210可以包括点对点连接。本领域的技术人员应了解,各种计算机网络可以被使用,并且因此不需要被在本文中详细地讨论。
[0029]客户端202可以是任何类型的计算设备,诸如参考图1上面所描述的设备100。通过例子,而没有限制,客户端202每个都可以是个人计算机、台式计算机、膝上型计算机、手持式设备、移动电话、电子平板或其它个人计算设备。客户端202可以每个都配置有能够通过提交URL或统一资源标识符(“URI”)来再现web站点的web浏览器。
[0030]在一个实施例中,驻留在客户端202上的web浏览器装配有被配置成周期性地将日志数据传送到优雅管理器204的工具栏或其它插件(“插件”)。日志数据可以包括被web浏览器保存的各种历史上的参数,其详述web浏览器的web历史。这样的历史上的参数的例子包括但不限于连同当底层web站点被访问时的时间和/或日期戳一起被web浏览器访问的URL或UR1、在特定站点访问之前被先前访问的上线web站点、正被访问的web站点的网际(“IP”)地址、web站点的签名页面等。插件允许周期性地传送历史上的参数,并且可以通过HTTP URL消息来这样做。例如,web浏览器可以每天、每十二小时、每小时或其它时间间隔发送HTTP URL消息。
[0031]主机206托管(host)web站点并且允许请求web浏览器访问站点。用于托管web站点的各种错综复杂的事务对于本领域的技术人员而言将是已知的,所以它们不需要被在本文中详细地讨论。尽管,一些实施例将合并主机206,所述主机206提供能够被用来管理web站点的各种网络管理员和分析服务小程序或应用。这些服务小程序或应用在一个实施例中创建详述已访问过站点的所有客户端202的日志数据。这个服务器创建的日志数据可以包括如由客户端202上的web浏览器的插件所生成的那样的历史上的参数。
[0032]优雅管理器204表示在像服务器这样的计算设备上托管的软件、固件、硬件或其组合。在一个实施例中,优雅管理器204访问并且分析来自客户端202的日志数据以便确定在用户业务量中到主机206上的web站点的趋势。为此,优雅管理器可以聚合在由许多浏览器所提交的HTTP URL消息中的日志数据,从而记录用户何时以及有多频繁地访问web站点。优雅管理器最后确定在不同时间帧期间到web站点的历史上的业务量模式。时间帧可以跨越在特定事件期间的时间的任何量度:例如,具体的小时、一天的分钟的集;具体的天(例如,星期六、星期一等);在具体事件(例如,股票交易的开市钟)之后;或其组合。
[0033]在其它实施例中,优雅管理器还访问来自web托管、分析或网络管理员应用的日志数据。例如,主机206可以提供用于支持web站点的各种服务。在交易或那些服务中,或者可能作为它们中的一个,主机206可以将日志数据存储到web站点,从而描绘到站点的业务量的非常准确的图表。然而,来自客户端202上的web浏览器的日志数据可以仅从已安装了插件的用户捕获数据。其它实施例可以使用两种类型的日志数据的组合来确定站点业务量。
[0034]优雅管理器204还调度web爬取器208来爬取主机206上的web站点。Web爬取器208表示能够请求web站点并且分析站点的内容的软件应用。本领域的技术人员应了解,各种概率计算可以被web爬取器208在内容被接收到之后执行。例如,关键词的两个实例可以基于它们在站点上有多接近在一起或它们到站点上的页面的顶部有多近而被以特定方式加权。存在用于理解并且索引web站点的许多加权和分析技术,其一般地将被本领域的技术人员所理解。
[0035]在操作中,优雅管理器204可以调度web爬取器208来以特定爬取速率或爬取延迟来爬取web页面,并且两者可以基于将来的业务量数据的估计被计算。在一个实施例中,将来的业务量数据的估计在优雅管理器204分析了详述到站点的历史上的业务量的日志数据之后被计算。历史上的业务量向优雅管理器204指示对于站点来说什么时间帧是历史上忙碌的(即,当站点被更加频繁地请求时)和什么时间帧是历史上较慢的(即,站点的较少请求)。使用历史上的业务量数据,优雅管理器确定将来的站点业务量的格外准确估计,根据其来算出爬取速率。爬取速率在一个实施例中被计算成为在特定时间帧期间业务量访问数的平均。例如,在最后200天期间在GST下午2:00与下午2:15之间到web站点的访问者的平均数可以被用来估计业务量在将来在该时间帧期间将是什么。
[0036]优雅管理器204可以调度web爬取器在时间帧期间以低于所估计的站点访问者的数目的频率来访问web站点。如果每秒三十个查询在时间巾贞期间在站点处被接收到,则例如优雅管理器可以调度web爬取器208以每秒二十九或更少的查询来爬取站点。在这样的实施例中,优雅管理器204调度web爬取器208以低于所估计的针对该站点所计算的页面请求的门限数目的速率来爬取。在一个实施例中,优雅管理器204可以从站点所有者或主机206请求以所确定的爬取速率来爬取的确认。
[0037]如果当web爬取器208正在爬取时站点崩溃或者经历其它问题,则一个实施例暂停web爬取器208请求web站点。例如,HTTP 503错误可能被web爬取器208中的一个接收到,从而触发web爬取器208停止。Web爬取器208也可以留意其它错误。
[0038]图3是根据一个实施例的具有致力于智能地爬取web站点的数个设备的处理流程300的图。流程300示出了客户端302、优雅管理器304、web站点主机306 ( “主机306”)与web爬取器308—它们全部跨越网络(出于简洁未示出)进行通信一之间的各种流程。
[0039]在流程300的左上部开始,客户端302从web浏览器插件和/或工具栏收集日志数据,如在310和312处所示出的那样。如在313处所示出的那样,客户端202将日志数据发送到优雅管理器,所述优雅管理器接收并且存储日志数据(被示出在314和316处)以及计算针对web站点的爬取速率(被示出在318处)。再次,爬取速率可以被设置以便web爬取器308以低于在特定时间帧期间站点的请求的确定数目的频率来请求web站点。优雅管理器304可以修改(提高或者减少)从一个时间帧到另一时间帧的爬取速率。例如,峰值时间帧证明调度web爬取器308比在非峰值时间帧期间不太频繁地请求web站点的爬取速率是有理的。
[0040]附加于或替代客户端302的日志数据,主机306可以收集并且发送由分析或网络服务器工具所收集到的日志数据(如在320和322处所示出的那样)。这个服务器侧日志数据可以结合或者代替客户端302的日志数据被用来确定爬取速率。
[0041]在一个实施例中,如在324处所示出的那样,优雅管理器304在时间帧期间基于所确定的爬取速率或在该时间帧期间站点请求的门限频率来调度web爬取器308。爬取web站点可以通过首先给web爬取器中的一个或多个分派任务来开始爬取web站点上的数据,如在326处所示出的那样。Web爬取器可以确定目前是哪一天和一天的什么时间,如在328处所示出的那样。并且,一些实施例将使得web爬取器308检索并且遵循(adhere to)robot.txt文件中的爬取速率和/或爬取延迟,如在330处所示出的那样。替换地或附加地,web爬取器访问并且遵循由优雅管理器所规定的爬取速率一即,基于所接收到的日志数据(客户端和/或主机)所确定的爬取速率一如在332处所示出的那样。如在334处所示出的那样,web爬取器308开始爬取主机306上的web站点,遵循由优雅管理器所确定的爬取速率,并且在一些实施例中,记住robot, txt文件爬取速率和爬取延迟。
[0042]图4是根据一个实施例的用于智能地爬取web站点的流程400的图。流程400包括步骤402:从多个web浏览器接收日志数据。日志数据可以来自客户端计算设备(例如,通过周期性地发送日志数据的客户端的web浏览器),或者在另一实施例中,可以来自为web站点提供各种网络管理员分析工具的服务器(例如,来自捕获对于web站点的所有有关历史的服务器)。步骤404包括使用日志数据来估计在时间帧期间(诸如在天的特定集合、秒、小时、分钟、秒或一些组合期间)到web站点的业务量。步骤406包括基于业务量的估计来确定在时间帧期间的爬取速率。在一个实施例中,爬取速率(即,web爬取器以其累积地能够访问web站点的速率)被设置成确保爬取器访问web站点不比在时间巾贞期间页面请求的历史上的平均多。在爬取速率被确定的情况下,服务器或优雅管理器(如上面所提到的)在一个实施例中调度一个或多个web爬取器一或web爬取器的实例一来开始根据在该时间帧期间的爬取速率来访问web站点,如在步骤408处所示出的那样。
[0043]尽管未示出,但是后面的时间帧可以证明不同的爬取速率是有理的,在所述不同的爬取速率期间服务器或优雅管理器可以调度web爬取器以便以不同的速率来访问web站点。为此目的,服务器或优雅管理器可以动态地改变web爬取器的调度以便说明在不同的时间期间的不同的爬取速率。
[0044]图5是根据一个实施例的用于智能地爬取web站点的流程图的图。流程500包括步骤502:从web浏览器接收指示历史上的浏览历史的日志数据。日志数据可以来自客户端计算设备(例如,通过周期性地发送日志数据的客户端的web浏览器),或者在另一实施例中,可以来自为网站提供各种网络管理员分析工具的服务器(例如,来自捕获对于web站点的所有有关历史的服务器)。步骤504包括确定web浏览器在特定时间访问了 web站点,并且步骤506继续聚合来自多个其它web浏览器的附加的日志数据。附加的日志数据指示访问web站点的其它web浏览器的附加的历史上的浏览历史。如在步骤508处所示出的那样,日志数据和附加的日志数据被用来估计在时间帧期间到web站点的业务量。在时间帧期间,步骤510确定对于web站点的页面请求的门限频率,并且步骤512分配一个或多个web爬取器来以低于页面请求的门限频率的速率来爬取或者访问web站点。
[0045]尽管未示出,但是后面的时间帧可以证明页面请求的不同频率是有理的,在所述不同频率期间web爬取器被分配来更加频繁或不太频繁地访问web站点。为此目的,服务器或优雅管理器可以动态地改变web爬取器的调度以便说明在不同时间期间的不同的爬取速率。
[0046]所说明的步骤不限于顺序方式,因为一些实施例将并行地或者在被说明序列之外执行步骤。此外,尽管已经用特定于结构特征和方法动作的语言描述了本主题,但是应理解,在所附权利要求中所限定的主题未必限于上面所描述的特定特征或行为。相反地,上面所描述的特定特征和动作作为实施权利要求的示例性形式被公开。例如,本文中所描述的那些以外的取样速率和取样周期也可以被本权利要求的宽度捕获。
【权利要求】
1.一种用于爬取web站点的方法,包括: 从多个web浏览器接收日志数据,所述日志数据指示通过所述web浏览器访问所述web站点的用户; 使用所述日志数据来估计在时间帧期间到所述web站点的业务量; 基于业务量的估计来确定在所述时间帧期间的爬取速率;以及 使用所述爬取速率来调度一个或多个web爬取器来请求所述web站点。
2.根据权利要求1所述的方法,其中所述日志数据指示由所述多个web浏览器历史上访问的多个统一资源定位符(“URL”)。
3.根据权利要求1所述的方法,进一步包括基于到所述web站点的业务量的估计来确定用于访问所述web站点的一个或多个峰值和非峰值时间帧,其中所述峰值时间帧是所述web站点比所述非峰值时间帧历史上经历更多的业务量的时间。
4.根据权利要求1所述的方法,其中所述一个或多个web爬取器在访问所述web站点时分析所述web站点上的内容以便索引所述web站点。
5.根据权利要求1所述的方法,进一步包括: 从监视对所述web站点的访问的一个或多个分析应用接收分析日志;以及 使用网络管理员数据来规定在所述时间帧期间的爬取速率。
6.根据权利要求1所述的方法,其中所述日志数据在HTTPURL消息中被接收。
7.根据权利要求1所述·的方法,进一步包括: 接收HTTP错误;以及 基于接收到所述HTTP错误,停止所述一个或多个web爬取器请求所述web站点。
8.根据权利要求1所述的方法,其中所述爬取速率指示用于访问所述web站点的最大频率。
9.体现有计算机可执行指令的一个或多个计算机存储媒体,所述计算机可执行指令当被处理器执行时,协调web站点的web爬取,包括: 从web浏览器接收指示历史上的浏览历史的日志数据; 确定所述web浏览器在特定时间访问了所述web站点; 聚合来自多个其它web浏览器的附加的日志数据,所述附加的日志数据指示访问所述web站点的其它web浏览器的附加的历史上的浏览历史; 使用所述日志数据和所述附加的日志数据来估计在时间帧期间到所述web站点的业务量; 基于业务量的估计来确定在所述时间帧期间对于所述web站点的页面请求的门限频率;以及 分配一个或多个web爬取器以便以低于页面请求的门限频率的速率来访问所述web站点。
10.根据权利要求9所述的媒体,进一步包括: 基于所述日志数据和所述附加的日志数据来确定在第二时间帧期间到所述web站点的业务量的第二估计;以及 基于指示比业务量的估计更少的在所述第二时间帧期间到所述web站点的历史上的业务量的业务量的第二估计,调度所述一个或多个爬取器以便在所述第二时间帧期间比在所述时间帧期间更频繁地访问所述web站点。
11.根据权利要求9所述的媒体,进一步包括: 基于所述日志数据和所述附加的日志数据来确定在第二时间帧期间到所述web站点的业务量的第二估计;以及 基于指示比业务量的估计更多的在所述第二时间帧期间到所述web站点的历史上的业务量的业务量的第二估计,调度所述一个或多个爬取器以便在所述第二时间帧期间比在所述时间帧期间不太频繁地访问所述web站点。
12.根据权利要求9所述的媒体,其中对于所述web站点的页面请求的门限频率包括每特定量的时间的请求的数目。
13.根据权利要求9所述的媒体,进一步包括传送通知,所述通知包括: 用于基于所述历史上的浏览历史和所述附加的历史上的浏览历史来爬取所述web站点的一个或多个峰值时间帧, 用于基于所述历史上的浏览历史和所述附加的历史上的浏览历史来爬取所述web站点的非峰值时间帧,以及 对用于在所述峰值或非峰值时间帧期间以一个或多个速率来爬取所述web站点的批准的请求。
14.一种服务器,包括: 一个或多个处理器,其执行优雅管理器以便:
(1)基于指示访问所述web站点的多个用户的历史上的日志数据来估计在第一和第二时间帧期间对于web站点的页面请求的门限频率,并且
(2)调度一个或多个web爬取器以便低于页面请求的门限频率来访问所述web站点;以及 一个或多个web爬取器,其访问如由所述优雅管理器所调度的web站点。
15.根据权利要求14所述的服务器,页面请求的门限频率是同样基于来自监视对所述web站点的访问的一个或多个分析应用的历史上的分析日志的。
【文档编号】G06F17/30GK103718171SQ201280038672
【公开日】2014年4月9日 申请日期:2012年7月31日 优先权日:2011年8月9日
【发明者】D.M.维尔曼, F.卡内尔, B.什亚姆库马, C.(X.)张 申请人:微软公司