CN103718171B - 以用户历史优化web爬取 - Google Patents
以用户历史优化web爬取 Download PDFInfo
- Publication number
- CN103718171B CN103718171B CN201280038672.0A CN201280038672A CN103718171B CN 103718171 B CN103718171 B CN 103718171B CN 201280038672 A CN201280038672 A CN 201280038672A CN 103718171 B CN103718171 B CN 103718171B
- Authority
- CN
- China
- Prior art keywords
- web site
- web
- daily record
- record data
- time frame
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims description 27
- 230000009193 crawling Effects 0.000 claims description 21
- 238000004458 analytical method Methods 0.000 claims description 7
- 238000006116 polymerization reaction Methods 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 claims 1
- 230000002354 daily effect Effects 0.000 description 51
- 230000008569 process Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 244000078534 Vaccinium myrtillus Species 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101100393838 Caenorhabditis elegans gst-2 gene Proteins 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 101100449767 Musca domestica Gst2 gene Proteins 0.000 description 1
- 235000003095 Vaccinium corymbosum Nutrition 0.000 description 1
- 235000017537 Vaccinium myrtillus Nutrition 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 235000021014 blueberries Nutrition 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/535—Tracking the activity of the user
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/62—Establishing a time schedule for servicing the requests
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种优雅管理器基于由客户端web浏览器上的插件或工具栏所生成并且发送的历史上的日志数据来估计到站点的业务量。所述历史上的日志数据详述所述web浏览器访问不同web站点的日期和时间,所述历史上的日志数据被用来理解特定web站点什么时间帧是忙碌的并且所述web站点什么时间帧不是忙碌的。对于web站点的针对不同时间帧的爬取速率基于所述历史上的日志数据被确定,并且web爬取器被调度来根据所述爬取速率来爬取所述web站点以便最小化web爬取器请求对站点崩溃有责任的机会。
Description
背景技术
搜索引擎使用web爬取器来理解万维网(“web”)上的文档。Web爬取器是持久地搜索web从而通过它们的内容(例如,关键词、文本、互惠链接、视频、图像、音频等等)索引web站点的程序。因为web站点是不断地改变的,所以web爬取器必须重复地爬取站点以便索引最新鲜的内容。然而,重复性地访问web站点对于站点的所有者造成问题,因为托管站点的服务器可能仅能够同时服务特定数目的用户/请求者。所以在峰值业务量周期期间爬取站点(例如,用于在特定股票交易的开市钟附近交易股票的站点)对于站点的稳定性来说变得危险。在站点的业务量的不稳定性质的情况下平衡索引新鲜内容的需要对于现代web爬取器来说是困难任务。
站点所有者设法控制web爬取器访问他们的站点的速率的传统方式是通过称作“robot.txt”文件的指导文本文件。Robot.txt文件指示web爬取器能够访问站点的速率(“爬取速率”)和web爬取器必须在获取之间等待的延迟(“爬取延迟”)。爬取速率和延迟两者是预定静态值,其因此不允许基于站点业务量的调整。
发明内容
本发明内容被提供来以简化的形式介绍概念的选择,所述概念下面在具体实施方式中被进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,它也不旨在被用来帮助确定所要求保护的主题的范围。
一个方面针对在web爬取器的管理和调度中使用从客户端计算设备上的web浏览器发送的日志数据。日志数据向web浏览器的用户指示web历史。来自许多不同客户端的日志数据被接收和聚合,并且经聚合的数据日志数据被分析以便理解web站点在不同时间帧期间历史上有多忙碌。假定不同时间帧的历史上的忙碌是将来时间帧在相同时间期间的忙碌的合宜预测器,一个实施例使用在时间帧期间经计算的业务来概率性地估计对于将来时间帧来说到web站点的业务量。业务量估计被用来确定对于web爬取器访问和爬取web站点的速率。
另一方面针对聚合从客户端web浏览器周期性地接收到的日志数据与其它接收到的客户端-浏览器日志数据以便理解web站点在不同时间帧期间的历史上的忙碌。使用聚合日志数据,在一个或多个时间帧期间到web站点的业务量的概率估计被形成,并且web爬取器被设置成以将不超过业务量估计的速率来获取web站点。这样做提供了web爬取器将不使web站点崩溃的高概率。
在又一个方面,服务器被配置成执行管理web爬取器的优雅(politeness)管理器。优雅管理器基于由客户端web浏览器所发送的指示那些浏览器的历史的日志数据来估计在不同时间帧期间对web站点的页面请求的门限频率。基于所述日志数据,优雅管理器调度一个或多个web爬取器以便以低于页面请求的门限频率的速率来访问web站点。Web爬取器根据优雅管理器的调度来访问web站点,从而累积地以低于页面请求的门限频率的速率进行爬取。
附图说明
本发明参考附图在下面被详细地描述,其中:
图1是根据一个实施例的计算设备的框图;
图2是根据一个实施例的用于智能地爬取web站点的联网环境的框图;
图3是根据一个实施例的具有致力于智能地爬取web站点的数个设备的处理流程的图;
图4是根据一个实施例的用于智能地爬取web站点的流程图的图;以及
图5是根据一个实施例的用于智能地爬取web站点的流程图的图。
具体实施方式
本文中所描述的主题被具体地呈现以满足法定要求。然而,本文中的描述不旨在限制本专利的范围。替代地,所要求保护的主题还可以与其它目前的或将来的技术相结合地被以其它方式体现,以便包括不同的步骤或与在本文档中所描述的步骤类似的步骤的组合。
如本文所用的那样,“web站点”指的是web页面、web博客、在线视频、在线图像、在线视频以及可能通过网络可访问的各种其它内容。为了帮助本文中说明书的可读性,“web站点”和“站点”被互换地使用。本领域的技术人员应了解,web爬取器能够被配置成分析并且解释web站点上的文本和/或元数据以便理解在线内容。为此目的,文本可以基于文本的底层定义、在网站上的放置或到内容的另一部分的位置而被判断或者加权。判断内容的经典例子是对关键词或短语在web站点上的次数进行计数,从而当关键词是在web站点顶上、在web站点上的标题中或者发现相对地接近于关键词的另一实例时提供更多顺从(deference)。或者,在另一例子中,视频的标题可以针对web站点上的关键词以及放置被分析。存在用于通过web爬取器来推断和判断web站点内容的无数方式,因此不同的实施例可以使用不同的技术。
一般来说,本文中所描述的实施例针对智能地管理访问web站点的web爬取器。不同的实施例基于对来自客户端上的报告web浏览器或者来自提供网络管理员(webmaster)服务的主机服务器的历史上的日志数据的取样来确定爬取web站点的速率。聚合日志数据允许一些实施例理解哪些时间帧是特别忙碌的并且哪些时间帧不是忙碌的,以便提高或者减少web爬取器访问web站点的频率。当站点历史上尚不是忙碌的时,web爬取器可能被允许比当站点历史上一直忙碌时更频繁地请求web站点。
至少一个实施例使用从客户端计算设备上的web浏览器发送的日志数据。该日志数据向web浏览器的用户指示web历史,其能够与来自其它web浏览器的日志数据聚合来理解到特定web站点的业务量模式。作为例子,考虑web站点www.microsoft.com。来自许多不同客户端的日志数据被接收和聚合。经聚合的日志数据然后被分析以便理解对于www.microsoft.com来说什么时间典型地是忙碌的并且什么时间是不太忙碌的。例如,日志数据可以揭示www.microsoft.com在工作日的夜晚比在午饭时间被远不太频繁地访问。理解忙碌且静止的时间允许实施例概率性地估计在不同时间帧期间(诸如在上午1:00-上午2:00)到web站点的业务量。业务量估计然后能够被用来确定web爬取器能够以其访问web站点的速率(爬取速率),并且该爬取速率在一个实施例中被用来调度web站点的爬取。
另一实施例从web浏览器接收指示浏览器历史的日志数据。浏览器历史可以包括这样的数据,诸如被浏览器历史上访问的web站点的统一资源定位符(“URL”)、URL被访问的时间和日期、上线URL (即,先前请求的站点的URL)、页面签名以及作为浏览器的历史保存的其它众所周知的属性。实施例还能够访问来自其它web浏览器的日志数据并且聚合所有日志数据以便形成到特定web站点的业务量的智能图片。使用经聚合的日志数据,在一个或多个时间帧期间到该web站点的业务量的概率估计被形成。例如,聚合日志数据可以被分析以便确定web站点接收到从下午12:14-12:42的峰值业务量。
基于跨越一个或多个时间帧的业务量估计,实施例确定在不危害站点的稳定性的情况下能够在时间帧期间对web站点做出的请求的门限频率。例如,业务量估计可以指示至多每秒二十个请求可以在时间帧期间被做出,然而另一时间帧可以每秒处理三十个请求。一个或多个web爬取器然后能够被命令在第一时间帧期间以低于每秒二十个请求(或者在一些实施例中,大大低于每秒二十个请求)来请求web站点以便确保爬取不使站点倒下。
在又一个实施例中,服务器被配置成执行“优雅管理器”,其指的是管理web爬取器的计算机可执行指令(被实施为软件、固件、硬件或其组合)。在这个实施例中,优雅管理器基于由客户端web浏览器所发送的日志数据来估计在不同时间帧期间针对web站点的页面请求的门限频率,所述日志数据指示那些浏览器的历史。基于日志数据,优雅管理器调度一个或多个web爬取器以便以低于页面请求的门限频率的速率来访问web站点。web爬取器—其还被实施为软件、固件、硬件或其组合—根据优雅管理器的调度来访问web站点。例如,优雅管理器可以在确定从下午2:00-2:15的十五分钟是历史上忙碌的之后从下午2:00-2:15调度十个web爬取器以每秒一个页面来访问web站点,其证明每秒十五个请求的不太频繁的爬取速率有理。结果,web爬取器以每秒十个请求的速率累积地爬取。这样的例子不意在限制所讨论的实施例,因为例子被纯粹地提供用于说明性目的。
本文中所提到的实施例可以采取计算机程序产品的形式,所述计算机程序产品包括在一个或多个计算机可读媒体上体现的计算机可用指令。计算机可读媒体包括易失性和非易失性媒体、可拆卸的和不可拆卸的媒体,并且设想了可由数据库读取的媒体。本文中所描述的各种计算设备、应用服务器以及数据库服务器每个都可以包含不同类型的计算机可读媒体以便存储指令和数据。附加地,这些设备还可以配置有各种应用和操作系统。
通过例子而非限制,计算机可读媒体包括计算机存储媒体。计算机存储媒体或机器可读媒体包括用任何方法或技术实施以用于存储信息的媒体。存储的信息的例子包括计算机可用指令、数据结构、程序模块以及其它数据表示。计算机存储媒体包括但不限于独立于不同的存储媒体或者与不同的存储媒体相结合地使用的随机存取存储器(RAM)、只读存储器(ROM)、电可擦可编程只读存储器(EEPROM)、闪速存储器,所述不同的存储媒体诸如例如光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、全息媒体或其它光盘存储装置、磁盒、磁带、磁盘存储装置或其它磁存储设备。这些存储器设备能够暂时地、临时地或者永久地存储数据。
如本文所用的那样,“构件”指的是计算机相关的实体,其是硬件、软件(即,执行中的)和/或固件。构件可以以客户端-服务器关系的方式操作以便执行本文中所描述的各种技术。这样的计算通常被称为“云中(in-the-cloud)”计算。例如,构件可以是在处理器上运行的进程、库、子例程和/或计算机或软件和硬件的组合。通过说明,在服务器上运行的应用和服务器两者都可以是构件。一个或多个构件可以驻留在进程内,并且构件能够位于计算设备(诸如服务器)上或者分布在跨越网络通信的两个或更多个计算设备之间。
特别地首先参考图1,用于实施一个实施例的示范性操作环境被示出并且一般地指定为计算设备100。计算设备100只是适合的计算环境的一个例子,并且不旨在关于本发明的用途或功能性的范围建议任何限制。计算设备100也不应该被解释为具有与说明的构件部分中的任何一个或组合有关的任何依赖或要求。在一个实施例中,计算设备100是个人计算机。但在其它实施例中,计算设备100可以是蜂窝电话、智能电话、数字电话、手持式设备、黑莓(BlackBerry)®、个人数字助理(PDA)或能够执行计算机指令的其它设备。
实施例可以在正被计算机或其它机器(诸如PDA或其它手持式设备)执行的计算机代码或机器可用指令的一般上下文中被描述,所述计算机代码或机器可用指令包括诸如程序模块之类的计算机可执行指令。一般地,机器可用指令定义各种软件例行程序、程序、对象、构件、数据结构、远程过程调用(RPC)等等。在操作中,这些指令执行特定计算任务,诸如请求并且检索在远程计算设备或服务器上存储的信息。
本文中所描述的实施例可以在各种系统配置中被实践,所述各种系统配置包括手持式设备、消费电子装置、通用计算机、更专用计算设备等。本文中所描述的实施例还可以被实践在分布式计算环境中,其中任务被通过通信网络被链接的远程处理设备执行。
继续参考图1,计算设备100包括总线110,其直接地或者间接地耦合以下设备:存储器112、一个或多个处理器114、一个或多个呈现设备116、输入/输出端口118、输入/输出构件120以及说明性电源122。总线110表示可以是一个或多个总线(诸如地址总线、数据总线或其组合)的东西。尽管为了简洁起见,图1的各种框被用线示出,实际上,刻画各种硬件不是如此清楚的,并且比喻地,线更准确地将是灰色的和模糊的。例如,一个人可以将呈现设备(诸如监视器)认为是I/O构件。并且,处理器具有存储器。本领域的技术人员应理解,这是本领域的本性,并且如先前所提到的那样,图1的图仅仅说明能够结合本发明的一个或多个实施例被使用的示范性计算设备。未在如“工作站”、“服务器”、“膝上型电脑”、“手持式设备”等这样的类别之间被做出区分,因为全部被设想在图1的范围内并且是对“计算设备”的引用。
计算设备100可以包括各种计算机可读媒体。通过例子而非限制,计算机可读媒体可以包括随机存取存储器(RAM);只读存储器(ROM);电可擦可编程只读存储器(EEPROM);闪速存储器或其它存储器技术;CDROM、数字多功能盘(DVD)或其它光学或全息媒体;磁盒、磁带、磁盘存储装置或其它磁存储设备。
存储器112包括形式为易失性和/或非易失性存储器的计算机存储媒体。存储器可以是可拆卸的、不可拆卸的或其组合。示范性硬件设备包括固态存储器、硬盘驱动器、高速缓存器、光盘驱动器等。计算设备100包括一个或多个处理器,其从诸如存储器112或I/O构件120之类的各种实体读取数据。呈现设备116将数据指示呈现给用户或其它设备。示范性呈现构件包括显示设备、扬声器、打印构件、振动构件等。
具体地,存储器112可以体现有针对web浏览器应用的指令,所述web浏览器应用诸如微软Internet Explorer®。本领域的技术人员应理解web浏览器的功能性;因此,web浏览器不需要被在本文中详细地讨论。然而,应指出,在存储器112上体现的web浏览器可以配置有各种插件(例如,微软SilverLightTM或Adobe
Flash)。这样的插件使得web浏览器能够执行在传送的web内容中的各种脚本或标记语言。例如,JavaScript可以被嵌入在web页面内并且可由web浏览器插件在客户端计算设备100上执行。
I/O端口118允许计算设备110被逻辑上耦合到包括I/O构件120的其它设备,所述I/O构件120中的一些可以被内置。说明性构件包括话筒、游戏杆、游戏板、卫星碟型天线、扫描器、打印机、无线设备等。
图2是根据一个实施例的用于智能地爬取web站点的联网环境200的框图。联网环境200包括数个计算设备,其包括客户端计算设备A-Z (被表示为“客户端202”)、优雅管理器204、web托管服务器A-Z (被表示为“主机206”)以及web爬取器服务器A-Z (被表示为“web爬取器208”)。客户端202、主机206以及web爬取器208可以每个都包括一个或多个计算设备,因此原因每个都被用点示出以表示可扩展性。
虽然客户端202、优雅管理器204、主机206以及web爬取器208在下面被讨论为由单独的计算设备执行,但是一些实施例可以包括这样的设备在同一计算设备上的组合。例如,优雅管理器204可以被执行web爬取器208的同一服务器执行,或者主机206可以被收容在与优雅管理器204相同的服务器中。换句话说,不同的计算设备(客户端和服务器)及其组合可以被本文中所讨论的实施例使用。
网络环境200中的计算设备跨越网络210与彼此进行通信,所述网络210可以包括任何通信网络,诸如因特网、专用网络、局域网(LAN)、广域网(WAN)等等。网络210可以包括LAN联网环境,其包括通过网络接口或适配器连接的构件。在其中网络210提供WAN联网环境的实施例中,构件可以使用调制解调器来通过WAN建立通信。然而,网络210不限于耦合单独的计算机单元的连接;替代地,网络210还可以包括在服务器与计算设备之间转移数据的子系统。例如,网络210可以包括点对点连接。本领域的技术人员应了解,各种计算机网络可以被使用,并且因此不需要被在本文中详细地讨论。
客户端202可以是任何类型的计算设备,诸如参考图1上面所描述的设备100。通过例子,而没有限制,客户端202每个都可以是个人计算机、台式计算机、膝上型计算机、手持式设备、移动电话、电子平板或其它个人计算设备。客户端202可以每个都配置有能够通过提交URL或统一资源标识符(“URI”)来再现web站点的web浏览器。
在一个实施例中,驻留在客户端202上的web浏览器装配有被配置成周期性地将日志数据传送到优雅管理器204的工具栏或其它插件(“插件”)。日志数据可以包括被web浏览器保存的各种历史上的参数,其详述web浏览器的web历史。这样的历史上的参数的例子包括但不限于连同当底层web站点被访问时的时间和/或日期戳一起被web浏览器访问的URL或URI、在特定站点访问之前被先前访问的上线web站点、正被访问的web站点的网际(“IP”)地址、web站点的签名页面等。插件允许周期性地传送历史上的参数,并且可以通过HTTP URL消息来这样做。例如,web浏览器可以每天、每十二小时、每小时或其它时间间隔发送HTTP URL消息。
主机206托管(host)web站点并且允许请求web浏览器访问站点。用于托管web站点的各种错综复杂的事务对于本领域的技术人员而言将是已知的,所以它们不需要被在本文中详细地讨论。尽管,一些实施例将合并主机206,所述主机206提供能够被用来管理web站点的各种网络管理员和分析服务小程序或应用。这些服务小程序或应用在一个实施例中创建详述已访问过站点的所有客户端202的日志数据。这个服务器创建的日志数据可以包括如由客户端202上的web浏览器的插件所生成的那样的历史上的参数。
优雅管理器204表示在像服务器这样的计算设备上托管的软件、固件、硬件或其组合。在一个实施例中,优雅管理器204访问并且分析来自客户端202的日志数据以便确定在用户业务量中到主机206上的web站点的趋势。为此,优雅管理器可以聚合在由许多浏览器所提交的HTTP URL消息中的日志数据,从而记录用户何时以及有多频繁地访问web站点。优雅管理器最后确定在不同时间帧期间到web站点的历史上的业务量模式。时间帧可以跨越在特定事件期间的时间的任何量度:例如,具体的小时、一天的分钟的集;具体的天(例如,星期六、星期一等);在具体事件(例如,股票交易的开市钟)之后;或其组合。
在其它实施例中,优雅管理器还访问来自web托管、分析或网络管理员应用的日志数据。例如,主机206可以提供用于支持web站点的各种服务。在交易或那些服务中,或者可能作为它们中的一个,主机206可以将日志数据存储到web站点,从而描绘到站点的业务量的非常准确的图表。然而,来自客户端202上的web浏览器的日志数据可以仅从已安装了插件的用户捕获数据。其它实施例可以使用两种类型的日志数据的组合来确定站点业务量。
优雅管理器204还调度web爬取器208来爬取主机206上的web站点。Web爬取器208表示能够请求web站点并且分析站点的内容的软件应用。本领域的技术人员应了解,各种概率计算可以被web爬取器208在内容被接收到之后执行。例如,关键词的两个实例可以基于它们在站点上有多接近在一起或它们到站点上的页面的顶部有多近而被以特定方式加权。存在用于理解并且索引web站点的许多加权和分析技术,其一般地将被本领域的技术人员所理解。
在操作中,优雅管理器204可以调度web爬取器208来以特定爬取速率或爬取延迟来爬取web页面,并且两者可以基于将来的业务量数据的估计被计算。在一个实施例中,将来的业务量数据的估计在优雅管理器204分析了详述到站点的历史上的业务量的日志数据之后被计算。历史上的业务量向优雅管理器204指示对于站点来说什么时间帧是历史上忙碌的(即,当站点被更加频繁地请求时)和什么时间帧是历史上较慢的(即,站点的较少请求)。使用历史上的业务量数据,优雅管理器确定将来的站点业务量的格外准确估计,根据其来算出爬取速率。爬取速率在一个实施例中被计算成为在特定时间帧期间业务量访问数的平均。例如,在最后200天期间在GST下午2:00与下午2:15之间到web站点的访问者的平均数可以被用来估计业务量在将来在该时间帧期间将是什么。
优雅管理器204可以调度web爬取器在时间帧期间以低于所估计的站点访问者的数目的频率来访问web站点。如果每秒三十个查询在时间帧期间在站点处被接收到,则例如优雅管理器可以调度web爬取器208以每秒二十九或更少的查询来爬取站点。在这样的实施例中,优雅管理器204调度web爬取器208以低于所估计的针对该站点所计算的页面请求的门限数目的速率来爬取。在一个实施例中,优雅管理器204可以从站点所有者或主机206请求以所确定的爬取速率来爬取的确认。
如果当web爬取器208正在爬取时站点崩溃或者经历其它问题,则一个实施例暂停web爬取器208请求web站点。例如,HTTP 503错误可能被web爬取器208中的一个接收到,从而触发web爬取器208停止。Web爬取器208也可以留意其它错误。
图3是根据一个实施例的具有致力于智能地爬取web站点的数个设备的处理流程300的图。流程300示出了客户端302、优雅管理器304、web站点主机306 (“主机306”)与web爬取器308—它们全部跨越网络(出于简洁未示出)进行通信—之间的各种流程。
在流程300的左上部开始,客户端302从web浏览器插件和/或工具栏收集日志数据,如在310和312处所示出的那样。如在313处所示出的那样,客户端202将日志数据发送到优雅管理器,所述优雅管理器接收并且存储日志数据(被示出在314和316处)以及计算针对web站点的爬取速率(被示出在318处)。再次,爬取速率可以被设置以便web爬取器308以低于在特定时间帧期间站点的请求的确定数目的频率来请求web站点。优雅管理器304可以修改(提高或者减少)从一个时间帧到另一时间帧的爬取速率。例如,峰值时间帧证明调度web爬取器308比在非峰值时间帧期间不太频繁地请求web站点的爬取速率是有理的。
附加于或替代客户端302的日志数据,主机306可以收集并且发送由分析或网络服务器工具所收集到的日志数据(如在320和322处所示出的那样)。这个服务器侧日志数据可以结合或者代替客户端302的日志数据被用来确定爬取速率。
在一个实施例中,如在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文件爬取速率和爬取延迟。
图4是根据一个实施例的用于智能地爬取web站点的流程400的图。流程400包括步骤402:从多个web浏览器接收日志数据。日志数据可以来自客户端计算设备(例如,通过周期性地发送日志数据的客户端的web浏览器),或者在另一实施例中,可以来自为web站点提供各种网络管理员分析工具的服务器(例如,来自捕获对于web站点的所有有关历史的服务器)。步骤404包括使用日志数据来估计在时间帧期间(诸如在天的特定集合、秒、小时、分钟、秒或一些组合期间)到web站点的业务量。步骤406包括基于业务量的估计来确定在时间帧期间的爬取速率。在一个实施例中,爬取速率(即, web爬取器以其累积地能够访问web站点的速率)被设置成确保爬取器访问web站点不比在时间帧期间页面请求的历史上的平均多。在爬取速率被确定的情况下,服务器或优雅管理器(如上面所提到的)在一个实施例中调度一个或多个web爬取器—或web爬取器的实例—来开始根据在该时间帧期间的爬取速率来访问web站点,如在步骤408处所示出的那样。
尽管未示出,但是后面的时间帧可以证明不同的爬取速率是有理的,在所述不同的爬取速率期间服务器或优雅管理器可以调度web爬取器以便以不同的速率来访问web站点。为此目的,服务器或优雅管理器可以动态地改变web爬取器的调度以便说明在不同的时间期间的不同的爬取速率。
图5是根据一个实施例的用于智能地爬取web站点的流程图的图。流程500包括步骤502:从web浏览器接收指示历史上的浏览历史的日志数据。日志数据可以来自客户端计算设备(例如,通过周期性地发送日志数据的客户端的web浏览器),或者在另一实施例中,可以来自为网站提供各种网络管理员分析工具的服务器(例如,来自捕获对于web站点的所有有关历史的服务器)。步骤504包括确定web浏览器在特定时间访问了web站点,并且步骤506继续聚合来自多个其它web浏览器的附加的日志数据。附加的日志数据指示访问web站点的其它web浏览器的附加的历史上的浏览历史。如在步骤508处所示出的那样,日志数据和附加的日志数据被用来估计在时间帧期间到web站点的业务量。在时间帧期间,步骤510确定对于web站点的页面请求的门限频率,并且步骤512分配一个或多个web爬取器来以低于页面请求的门限频率的速率来爬取或者访问web站点。
尽管未示出,但是后面的时间帧可以证明页面请求的不同频率是有理的,在所述不同频率期间web爬取器被分配来更加频繁或不太频繁地访问web站点。为此目的,服务器或优雅管理器可以动态地改变web爬取器的调度以便说明在不同时间期间的不同的爬取速率。
所说明的步骤不限于顺序方式,因为一些实施例将并行地或者在被说明序列之外执行步骤。此外,尽管已经用特定于结构特征和方法动作的语言描述了本主题,但是应理解,在所附权利要求中所限定的主题未必限于上面所描述的特定特征或行为。相反地,上面所描述的特定特征和动作作为实施权利要求的示例性形式被公开。例如,本文中所描述的那些以外的取样速率和取样周期也可以被本权利要求的宽度捕获。
Claims (15)
1.一种用于爬取web站点的方法,包括:
在服务器处从多个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所述的方法,其中所述日志数据在HTTP URL消息中被接收。
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站点,其中,所述优雅管理器是管理所述一个或多个web爬取器的指令。
15.根据权利要求14所述的服务器,页面请求的门限频率还基于来自监视对所述web站点的访问的一个或多个分析应用的历史上的分析日志。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/206256 | 2011-08-09 | ||
US13/206,256 US8782031B2 (en) | 2011-08-09 | 2011-08-09 | Optimizing web crawling with user history |
PCT/US2012/049085 WO2013022659A2 (en) | 2011-08-09 | 2012-07-31 | Optimizing web crawling with user history |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103718171A CN103718171A (zh) | 2014-04-09 |
CN103718171B true CN103718171B (zh) | 2016-11-09 |
Family
ID=47669159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280038672.0A Active CN103718171B (zh) | 2011-08-09 | 2012-07-31 | 以用户历史优化web爬取 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8782031B2 (zh) |
EP (1) | EP2742438B1 (zh) |
CN (1) | CN103718171B (zh) |
AR (1) | AR087458A1 (zh) |
TW (1) | TWI557571B (zh) |
WO (1) | WO2013022659A2 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150199332A1 (en) * | 2012-07-20 | 2015-07-16 | Mu Li | Browsing history language model for input method editor |
US10261938B1 (en) * | 2012-08-31 | 2019-04-16 | Amazon Technologies, Inc. | Content preloading using predictive models |
CN104168174A (zh) * | 2013-05-16 | 2014-11-26 | 阿里巴巴集团控股有限公司 | 一种传输信息的方法及装置 |
US10068013B2 (en) * | 2014-06-19 | 2018-09-04 | Samsung Electronics Co., Ltd. | Techniques for focused crawling |
US10310699B1 (en) * | 2014-12-08 | 2019-06-04 | Amazon Technologies, Inc. | Dynamic modification of browser and content presentation |
CN104581779B (zh) * | 2014-12-11 | 2018-11-30 | 华为技术有限公司 | 一种业务处理方法以及装置 |
CN106503017A (zh) * | 2015-09-08 | 2017-03-15 | 摩贝(上海)生物科技有限公司 | 一种分布式爬虫系统任务抓取系统和方法 |
US10585970B2 (en) * | 2016-01-14 | 2020-03-10 | International Business Machines Corporation | Managing dynamic webpage content |
US10484415B1 (en) * | 2016-12-16 | 2019-11-19 | Worldpay, Llc | Systems and methods for detecting security risks in network pages |
CN110020046B (zh) * | 2017-10-20 | 2021-06-15 | 中移(苏州)软件技术有限公司 | 一种数据抓取方法及装置 |
US11366862B2 (en) * | 2019-11-08 | 2022-06-21 | Gap Intelligence, Inc. | Automated web page accessing |
CN111125488A (zh) * | 2019-12-25 | 2020-05-08 | 东南大学 | 一种主机负荷智能感知的定向爬虫方法及系统 |
CN111431852B (zh) * | 2020-02-21 | 2021-06-25 | 厦门大学 | 一种浏览器历史嗅探方法与浏览器历史监控方法 |
US12019691B2 (en) | 2021-04-02 | 2024-06-25 | Trackstreet, Inc. | System and method for reducing crawl frequency and memory usage for an autonomous internet crawler |
CN113486229B (zh) * | 2021-07-05 | 2023-11-07 | 北京百度网讯科技有限公司 | 抓取压力的控制方法、装置、电子设备及可读存储介质 |
CN113505041A (zh) * | 2021-07-21 | 2021-10-15 | 浪潮卓数大数据产业发展有限公司 | 基于用户访问行为分析的爬虫识别方法及系统 |
CN115329179B (zh) * | 2022-10-14 | 2023-04-28 | 卡奥斯工业智能研究院(青岛)有限公司 | 数据采集资源量控制方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6418452B1 (en) * | 1999-11-03 | 2002-07-09 | International Business Machines Corporation | Network repository service directory for efficient web crawling |
CN1945576A (zh) * | 2006-10-31 | 2007-04-11 | 上海态格文化传播有限公司 | 自适应网页更新时间预测方法 |
CN101187925A (zh) * | 2006-11-17 | 2008-05-28 | 北京酷讯科技有限公司 | 自动优化爬虫的抓取方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6662230B1 (en) * | 1999-10-20 | 2003-12-09 | International Business Machines Corporation | System and method for dynamically limiting robot access to server data |
WO2001050320A1 (en) | 1999-12-30 | 2001-07-12 | Auctionwatch.Com, Inc. | Minimal impact crawler |
US7398271B1 (en) * | 2001-04-16 | 2008-07-08 | Yahoo! Inc. | Using network traffic logs for search enhancement |
US7725452B1 (en) * | 2003-07-03 | 2010-05-25 | Google Inc. | Scheduler for search engine crawler |
US7310632B2 (en) | 2004-02-12 | 2007-12-18 | Microsoft Corporation | Decision-theoretic web-crawling and predicting web-page change |
US7987172B1 (en) * | 2004-08-30 | 2011-07-26 | Google Inc. | Minimizing visibility of stale content in web searching including revising web crawl intervals of documents |
US8386459B1 (en) * | 2005-04-25 | 2013-02-26 | Google Inc. | Scheduling a recrawl |
US7801881B1 (en) | 2005-05-31 | 2010-09-21 | Google Inc. | Sitemap generating client for web crawler |
US7769742B1 (en) | 2005-05-31 | 2010-08-03 | Google Inc. | Web crawler scheduler that utilizes sitemaps from websites |
US7930400B1 (en) * | 2006-08-04 | 2011-04-19 | Google Inc. | System and method for managing multiple domain names for a website in a website indexing system |
US7599920B1 (en) | 2006-10-12 | 2009-10-06 | Google Inc. | System and method for enabling website owners to manage crawl rate in a website indexing system |
JP4868245B2 (ja) | 2007-08-17 | 2012-02-01 | ヤフー株式会社 | 検索システム、検索装置、および検索方法 |
US7769740B2 (en) * | 2007-12-21 | 2010-08-03 | Yahoo! Inc. | Systems and methods of ranking attention |
US8108340B2 (en) | 2008-03-28 | 2012-01-31 | Yahoo! Inc. | Search engine configured to minimize performance degradation under high load |
US8595847B2 (en) * | 2008-05-16 | 2013-11-26 | Yellowpages.Com Llc | Systems and methods to control web scraping |
US20090327913A1 (en) * | 2008-06-27 | 2009-12-31 | Microsoft Corporation | Using web revisitation patterns to support web interaction |
-
2011
- 2011-08-09 US US13/206,256 patent/US8782031B2/en active Active
-
2012
- 2012-07-09 TW TW101124657A patent/TWI557571B/zh not_active IP Right Cessation
- 2012-07-31 WO PCT/US2012/049085 patent/WO2013022659A2/en unknown
- 2012-07-31 EP EP12822658.6A patent/EP2742438B1/en active Active
- 2012-07-31 CN CN201280038672.0A patent/CN103718171B/zh active Active
- 2012-08-03 AR ARP120102853 patent/AR087458A1/es active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6418452B1 (en) * | 1999-11-03 | 2002-07-09 | International Business Machines Corporation | Network repository service directory for efficient web crawling |
CN1945576A (zh) * | 2006-10-31 | 2007-04-11 | 上海态格文化传播有限公司 | 自适应网页更新时间预测方法 |
CN101187925A (zh) * | 2006-11-17 | 2008-05-28 | 北京酷讯科技有限公司 | 自动优化爬虫的抓取方法 |
Also Published As
Publication number | Publication date |
---|---|
US8782031B2 (en) | 2014-07-15 |
EP2742438B1 (en) | 2017-12-13 |
WO2013022659A2 (en) | 2013-02-14 |
EP2742438A2 (en) | 2014-06-18 |
TWI557571B (zh) | 2016-11-11 |
US20130041881A1 (en) | 2013-02-14 |
WO2013022659A3 (en) | 2013-04-18 |
AR087458A1 (es) | 2014-03-26 |
CN103718171A (zh) | 2014-04-09 |
TW201308094A (zh) | 2013-02-16 |
EP2742438A4 (en) | 2015-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103718171B (zh) | 以用户历史优化web爬取 | |
WO2017167050A1 (zh) | 配置信息生成、发送方法及资源加载方法和装置及系统 | |
CN100585598C (zh) | 用于更新portlet信息的方法和系统 | |
US8868541B2 (en) | Scheduling resource crawls | |
US20170293865A1 (en) | Real-time updates to item recommendation models based on matrix factorization | |
CN100471113C (zh) | 高速缓存后的置换 | |
EP1111517A2 (en) | System and method for caching | |
US8365241B1 (en) | Method and apparatus for archiving web content based on a policy | |
CN102208991A (zh) | 一种日志处理方法、设备和系统 | |
CN102780603B (zh) | 网站流量控制方法及装置 | |
CN103207882A (zh) | 店铺访问数据处理方法及系统 | |
EP3049940B1 (en) | Data caching policy in multiple tenant enterprise resource planning system | |
CN105009121A (zh) | 预测存储服务 | |
US20080147870A1 (en) | Server, information processing method, server program and server system | |
CN110377854A (zh) | 用户访问行为信息监控方法及装置、计算机设备 | |
AU2020277977A1 (en) | Efficient freshness crawl scheduling | |
US8930946B1 (en) | Leasing prioritized tasks | |
US8745245B1 (en) | System and method for offline detection | |
CN105187514A (zh) | 云端应用程序的管理方法及其系统 | |
US10311160B2 (en) | Cloud search analytics | |
EP2336902B1 (en) | A method and system for improving information system performance based on usage patterns | |
CN113900907A (zh) | 一种映射构建方法和系统 | |
US8547996B2 (en) | Self learning performance optimized data transfer via one or several communication channels between systems | |
CN112491939B (zh) | 多媒体资源调度方法及系统 | |
CN112688980B (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 | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150616 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150616 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |