System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 通过使用代理进行web抓取及其应用制造技术_技高网

通过使用代理进行web抓取及其应用制造技术

技术编号:40000642 阅读:4 留言:0更新日期:2024-01-09 03:28
实施例公开了一种允许用于抓取的web请求的改进生成的系统,由于请求的性质以及它们被发送出去的时间和方式,与常规自动化的抓取系统相比,该请求显得更加自然,如同“人类生成的”一样。然后,系统管理如何向站点做出抓取目标网站的客户端请求,以使得对于web服务器而言看起来好像该请求不是由自动化系统生成的一样的方式掩盖请求。以这种方式,通过显得更加自然,web服务器可能不太可能阻止来自所公开的系统的请求或者可能需要更长的时间来阻止来自所公开的系统的请求。通过避免web服务器阻止请求并在IP代理被阻止之前延长IP代理的生命周期,实施例能够更高效地使用有限的IP代理地址空间。

【技术实现步骤摘要】
【国外来华专利技术】

本领域一般而言涉及web抓取。相关技术web抓取(也称为屏幕抓取、数据挖掘、web收获)是从互联网对数据的自动搜集。这是通过除了人类使用web浏览器以外的任何方式从互联网搜集数据的做法。web抓取通常是通过执行程序来完成的,该程序查询web服务器并自动请求数据,然后解析数据以提取所请求的信息。为了进行web抓取,可以使用被称为web爬虫的程序。web爬虫,有时称为web蜘蛛,是执行第一项任务的程序或自动化脚本,即,它以自动方式浏览web以检索数据,诸如所访问网站的超文本传输标记语言(html)数据、json、xml以及二进制文件。web抓取对于多种应用是有用的。在第一示例中,web抓取可以被用于搜索引擎优化。搜索引擎优化(seo)是提高从搜索引擎到网站或网页的网站流量的质量和数量的过程。web搜索引擎,诸如可从位于加利福尼亚州山景城(mountain view,california)的谷歌(google)公司获得的谷歌搜索引擎,具有对其结果(包括未付费的那些结果)进行排名的特定方式。为了升高网站在搜索结果中的位置,seo可以例如涉及页面之间的交叉链接、调整网站的内容以包括特定的关键词短语,或者更频繁地更新网站的内容。自动化的seo过程可能需要从搜索引擎中抓取搜索结果,以确定网站在搜索结果中的排名如何。在第二示例中,web抓取可以被用于识别可能的版权。在该示例中,可以将抓取的web内容与受版权保护的素材进行比较,以自动标记web内容是否可能侵犯版权所有者的权利。在检测版权声明的一个操作中,可以向搜索引擎发出请求,搜索引擎已经在互联网上搜集了大量内容。然后可以将抓取的搜索结果与受版权保护的作品进行比较。在第三示例中,web抓取对于检查付费广告在网页上的放置可以是有用的。例如,许多搜索引擎出售关键词,并且当搜索请求包括出售的关键词时,它们将付费广告放置在返回的页面上的未付费搜索结果上方。搜索引擎可以将相同的关键词出售给不同的公司,从而针对优选位置收取更多费用。此外,搜索引擎还可以按地理区域对销售进行细分。自动化的web抓取可以被用于确定特定关键词或特定地理区域中的广告放置。在第四示例中,web抓取对于检查电子商务网站上列出的价格或产品可以是有用的。例如,公司可能希望监视竞争对手的价格,以保证其价格保持竞争力。为了进行web抓取,可以从代理服务器发送web请求。然后,代理服务器代表web抓取器发出请求,收集来自web服务器的响应,并转发网页数据,以便抓取器可以解析和解释该页面。当代理服务器转发请求时,它一般不更改底层内容,而只是将其转发回web爬虫。代理服务器改变请求的源ip地址,因此不会向web服务器提供抓取器的地理位置。以这种方式使用代理服务器可以使请求显得更加自然,从而确保来自web抓取的结果表示如果人类从该地理位置发出请求则将实际呈现的内容。代理服务器根据用于寻址web服务器的ip地址而分为各种类型。住宅ip地址是如指派给私人客户的、由拥有方(通常是互联网服务提供商(isp))专门指定的范围内的地址。通常,住宅代理是链接到物理设备(例如,移动电话或台式计算机)的ip地址。但是,从商业角度来看,住宅ip地址块可以由另一个公司直接从拥有的代理服务提供商处批量购买。移动ip代理是住宅代理类别的子集。移动ip代理是具有从移动运营商处获得的ip地址的一种代理。与使用宽带isp或家庭wi-fi的住宅代理相反,移动ip代理使用移动数据。数据中心ip代理是被指派有数据中心ip的代理服务器。数据中心ip是公司而非个人拥有的ip。数据中心代理通常是不在自然人的家中的ip地址。退出节点代理,或者简称为退出节点,是流量到达互联网的网关。可以有几个代理被用于执行用户的请求,但是退出节点代理是联系目标并可能经由先前的代理将信息从目标转发到用户设备的最终代理。可以有几个代理为用户的请求进行服务,形成代理链,通过每个代理传递请求,其中出口节点是链中最终将请求传递到目标的最后一个链接。电子商务和搜索引擎站点可能不喜欢为web抓取请求提供服务或者可能尝试限制web抓取请求。为此,这些站点可能尝试确定其接收到的哪些请求是自动的,以及哪些请求是响应于人类web浏览请求的。当web服务器识别出服务器认为是自动化的请求时,服务器可能阻止来自那个代理的所有请求或来自那个代理的具有某些参数的请求。为了识别哪些请求是自动化的,web服务器可以尝试确定来自特定ip地址或子网的web请求是否随时间满足模式。为了避免检测,可以轮换代理,以便单个ip地址不会做出过多的请求。但是,代理ip地址的供应是有限的。(尤其是ip版本4中的)ip地址空间一般受到限制。因为可用的ip地址中的许多ip地址被标记为数据中心ip,并且可能被抓取的许多目标网站拒绝为来自那些ip地址的web请求提供服务,所以这种有限的供应变得更加严重。由于供应有限,因此获得代理ip地址的成本增加了。过快地停止使用代理ip地址会增加web抓取的成本。需要用于改进的web抓取的系统和方法。


技术介绍


技术实现思路

1、在第一实施例中,提供了一种用于随时间节流(throttle)多个web抓取请求的方法。在该方法中,在第一时间段期间,从客户端计算设备接收多个web抓取请求。多个web抓取请求中的每一个指定要从中捕获内容的目标网站。用于多个web抓取请求的作业描述被放置在队列上。每个作业描述由多个请求中的请求指定的web抓取作业。在比第一时间段长的第二时间段内增量地从队列中移除作业描述。当从队列中移除每个相应的作业描述时,将按照作业描述中指定的那样生成对目标网站的web请求。传输web请求,使得web请求经由从一组代理中选择的代理到达目标网站。

2、在第二实施例中,提供了一种用于基于交换的数据量来跟踪用户活动的方法。在该方法中,接收来自客户端计算设备的web抓取请求。web抓取请求指定要从中捕获内容的目标网站。基于web抓取请求,生成针对目标网站的web请求。传输web请求,使得web请求经由从一组代理中选择的代理到达目标网站。响应于web请求,经由代理接收从目标网站传输的内容。对接收到的内容中的数据量进行计数以确定客户端计算设备的客户端的当前流量总量。接收到的内容被传输到客户端计算设备。

3、在第三实施例中,提供了一种用于确定哪些服务器可用于处理web抓取作业的方法。在该方法中,重复地检查多个数据库服务器中的每一个的健康状况。基于健康检查,确定多个数据库服务器中的每一个要被启用还是禁用。多个数据库服务器彼此独立地操作。每个数据库服务器被配置为管理对作业数据库的至少一部分的数据存储,该作业数据库在web抓取作业被执行时存储它们的状态。当从客户端计算设备接收到web抓取请求时,选择被识别为启用的数据库服务器之一。并且,由网页抓取请求指定的作业描述被发送到所选择的数据库服务器,以作为未决web抓取作业存储在作业数据库中。

4、在第四实施例中,提供了一种用于在web抓取系统中的多个数据中心上分发应用编程接口(api)请求以确保将api请求路由到具有所请求的数据的数据中心的方法。在该方法中,接收来本文档来自技高网...

【技术保护点】

1.一种用于随时间执行多个web抓取请求的计算机实现的方法,包括:

2.根据权利要求1所述的方法,其中移除(c)以所选择的增量发生,以避免所述一组代理被目标网站阻止。

3.根据前述权利要求中的任一项、特别是根据权利要求1所述的方法,还包括:

4.根据前述权利要求中的任一项、特别是根据权利要求1所述的方法,其中所述多个web抓取请求各自包括指示从其发起web抓取请求的客户端的客户端标识符,该方法还包括:

5.根据权利要求4所述的方法,其中所述多个web抓取请求各自还包括目标网站的标识符,该方法还包括:

6.根据权利要求4和5中的任一项、特别是根据权利要求5所述的方法,还包括基于作业描述是否指定从无头浏览器进行web抓取来从所述多个队列中选择所述队列。

7.根据权利要求4至6中的任一项、特别是根据权利要求6所述的方法,还包括,当作业描述请求从无头浏览器进行web抓取时:

8.根据前述权利要求中的任一项、特别是根据权利要求1所述的方法,其中增量地移除(c)包括在时间窗口从队列重复移除作业描述。

<p>9.根据权利要求8所述的方法,其中增量地移除(c)包括在时间窗口从队列重复移除多个作业描述。

10.根据权利要求9所述的方法,其中所述多个作业描述中的作业描述的数量是基于发送所述多个web抓取请求的客户端来指定的。

11.根据前述权利要求中的任一项、特别是根据权利要求1所述的方法,还包括:

12.根据前述权利要求中的任一项、特别是根据权利要求1所述的方法,还包括:

13.一种用于随时间执行多个web抓取请求的系统,包括:

14.根据权利要求13所述的系统,其中作业移除器被配置为以所选择的增量移除以避免所述一组代理被目标网站阻止。

15.根据权利要求13和14中的任一项、特别是根据权利要求13所述的系统,其中抓取器被配置为响应于web请求而接收从目标网站传输的内容,并且请求摄入管理器被配置为向客户端通知接收到的内容可用于传输到客户端计算设备。

16.根据权利要求13至15中的任一项、特别是根据权利要求13所述的系统,还包括被配置为存储多个队列的存储器,其中所述多个web抓取请求各自包括指示客户端源自的客户端的客户端标识符,该系统还包括:

17.根据权利要求16所述的系统,其中所述多个web抓取请求各自还包括目标网站的标识符,队列选择器被配置为基于目标网站的标识符从所述多个队列中选择所述队列。

18.根据权利要求16和17中的任一项、特别是根据权利要求17所述的系统,还包括队列选择器,该队列选择器被配置为基于作业描述是否指定从无头浏览器进行web抓取来从所述多个队列中选择所述队列。

19.根据权利要求13至18中的任一项、特别是根据权利要求13所述的系统,还包括:

20.一种其上存储有指令的非暂态计算机可读设备,指令在由至少一个计算设备执行时使所述至少一个计算设备执行操作,操作包括:

21.一种用于跟踪用户活动的计算机实现的方法,包括:

22.根据权利要求21所述的方法,还包括:

23.根据权利要求21和22中的任一项、特别是根据权利要求21所述的方法,其中当前流量总量是针对一个时间段的,该方法还包括:

24.根据权利要求21至23中的任一项、特别是根据权利要求21所述的方法,其中当前流量总量是针对一个时间段的,该方法还包括:

25.根据权利要求21至24中的任一项、特别是根据权利要求21所述的方法,还包括:

26.根据权利要求25所述的方法,还包括:

27.根据权利要求21至26中的任一项、特别是根据权利要求21所述的方法,还包括:

28.根据权利要求21至27中的任一项、特别是根据权利要求21所述的方法,其中所述web请求是第二web请求,并且接收到的内容是第二内容,该方法还包括:

29.根据权利要求28所述的方法,其中计数(e)包括排除第一内容中的数据量以确定由抓取器为客户端检索到的当前流量总量。

30.根据权利要求21至29中的任一项、特别是根据权利要求21所述的方法,其中计数(e)包括确定接收到的内容中被压缩用于传输的数据量。

31.根据权利要求29所述的方法,其中计数(e)还包括:

32.根据权利要求21至31中的任一项、特别是根据权利要求21所述的方法,还包括:

33.根据权利要求21至32中的任一项、特别是根据权利要求21所述的方法,还包括:...

【技术特征摘要】
【国外来华专利技术】

1.一种用于随时间执行多个web抓取请求的计算机实现的方法,包括:

2.根据权利要求1所述的方法,其中移除(c)以所选择的增量发生,以避免所述一组代理被目标网站阻止。

3.根据前述权利要求中的任一项、特别是根据权利要求1所述的方法,还包括:

4.根据前述权利要求中的任一项、特别是根据权利要求1所述的方法,其中所述多个web抓取请求各自包括指示从其发起web抓取请求的客户端的客户端标识符,该方法还包括:

5.根据权利要求4所述的方法,其中所述多个web抓取请求各自还包括目标网站的标识符,该方法还包括:

6.根据权利要求4和5中的任一项、特别是根据权利要求5所述的方法,还包括基于作业描述是否指定从无头浏览器进行web抓取来从所述多个队列中选择所述队列。

7.根据权利要求4至6中的任一项、特别是根据权利要求6所述的方法,还包括,当作业描述请求从无头浏览器进行web抓取时:

8.根据前述权利要求中的任一项、特别是根据权利要求1所述的方法,其中增量地移除(c)包括在时间窗口从队列重复移除作业描述。

9.根据权利要求8所述的方法,其中增量地移除(c)包括在时间窗口从队列重复移除多个作业描述。

10.根据权利要求9所述的方法,其中所述多个作业描述中的作业描述的数量是基于发送所述多个web抓取请求的客户端来指定的。

11.根据前述权利要求中的任一项、特别是根据权利要求1所述的方法,还包括:

12.根据前述权利要求中的任一项、特别是根据权利要求1所述的方法,还包括:

13.一种用于随时间执行多个web抓取请求的系统,包括:

14.根据权利要求13所述的系统,其中作业移除器被配置为以所选择的增量移除以避免所述一组代理被目标网站阻止。

15.根据权利要求13和14中的任一项、特别是根据权利要求13所述的系统,其中抓取器被配置为响应于web请求而接收从目标网站传输的内容,并且请求摄入管理器被配置为向客户端通知接收到的内容可用于传输到客户端计算设备。

16.根据权利要求13至15中的任一项、特别是根据权利要求13所述的系统,还包括被配置为存储多个队列的存储器,其中所述多个web抓取请求各自包括指示客户端源自的客户端的客户端标识符,该系统还包括:

17.根据权利要求16所述的系统,其中所述多个web抓取请求各自还包括目标网站的标识符,队列选择器被配置为基于目标网站的标识符从所述多个队列中选择所述队列。

18.根据权利要求16和17中的任一项、特别是根据权利要求17所述的系统,还包括队列选择器,该队列选择器被配置为基于作业描述是否指定从无头浏览器进行web抓取来从所述多个队列中选择所述队列。

19.根据权利要求13至18中的任一项、特别是根据权利要求13所述的系统,还包括:

20.一种其上存储有指令的非暂态计算机可读设备,指令在由至少一个计算设备执行时使所述至少一个计算设备执行操作,操作包括:

21.一种用于跟踪用户活动的计算机实现的方法,包括:

22.根据权利要求21所述的方法,还包括:

23.根据权利要求21和22中的任一项、特别是根据权利要求21所述的方法,其中当前流量总量是针对一个时间段的,该方法还包括:

24.根据权利要求21至23中的任一项、特别是根据权利要求21所述的方法,其中当前流量总量是针对一个时间段的,该方法还包括:

25.根据权利要求21至24中的任一项、特别是根据权利要求21所述的方法,还包括:

26.根据权利要求25所述的方法,还包括:

27.根据权利要求21至26中的任一项、特别是根据权利要求21所述的方法,还包括:

28.根据权利要求21至27中的任一项、特别是根据权利要求21所述的方法,其中所述web请求是第二web请求,并且接收到的内容是第二内容,该方法还包括:

29.根据权利要求28所述的方法,其中计数(e)包括排除第一内容中的数据量以确定由抓取器为客户端检索到的当前流量总量。

30.根据权利要求21至29中的任一项、特别是根据权利要求21所述的方法,其中计数(e)包括确定接收到的内容中被压缩用于传输的数据量。

31.根据权利要求29所述的方法,其中计数(e)还包括:

32.根据权利要求21至31中的任一项、特别是根据权利要求21所述的方法,还包括:

33.根据权利要求21至32中的任一项、特别是根据权利要求21所述的方法,还包括:

34.一种其上存储有指令的非暂态计算机可读设备,指令在由至少一个计算设备执行时使所述至少一个计算设备执行操作,操作包括:

35.根据权利要求34所述的设备,操作还包括:

36.根据权利要求35所述的设备,操作还包括:

37.根据权利要求34至36中的任一项、特别是根据权利要求34所述的设备,其中所述web请求是第二web请求,并且接收到的内容是第二内容,操作还包括:

38.根据权利要求34至37中的任一项、特别是根据权利要求34所述的设备,其中计数(e)包括确定接收到的内容中被压缩用于传输的数据量。

39.根据权利要求34至38中的任一项、特别是根据权利要求34所述的设备,其中计数(e)还包括:

40.根据权利要求34至39中的任一项、特别是根据权利要求34所述的设备,还包括:

41.一种用于确定哪些服务器可用于处理web抓取作业的计算机实现的方法,包括:

42.根据权利要求41所述的方法,其中,所述重复检查中的每次检查包括,对于所述多个数据库服务器中的每个数据库服务器,连接到相应数据库服务器的作业数据库的所述一部分。

43.根据权利要求41和42中的任一项、特别是根据权利要求41所述的方法,其中所述多个数据库服务器中的每个数据库服务器包括对要存储在作业数据库中的作业描述进行排队的消息代理,并且所述重复检查中的每次检查包括,对于所述多个数据库服务器中的每个数据库服务器,检查从客户端计算设备接收web抓取请求的服务器与相应数据库服务器的消息代理之间的连接。

44.根据权利要求41至43中的任一项、特别是根据权利要求41所述的方法,其中所述多个数据库服务器中的每个数据库服务器包括对要存储在作业数据库中的作业描述进行排队的消息代理,并且所述重复检查中的每次检查包括,对于所述多个数据库服务器中的每个数据库服务器,检查在相应数据库服务器的消息代理内排队的消息的数量。

45.根据权利要求41至44中的任一项、特别是根据权利要求41所述的方法,其中所述多个数据库服务器中的每个数据库服务器是在作业数据库的水平分区中管理存储的分片。

46.根据权利要求41至45中的任一项、特别是根据权利要求41所述的方法,其中所述多个数据库服务器中的每个数据库服务器不彼此同步状态。

47.根据权利要求41至46中的任一项、特别是根据权利要求41所述的方法,其中所述多个数据库服务器由多个不同的计算设备执行。

48.根据权利要求41至47中的任一项、特别是根据权利要求41所述的方法,还包括:

49.一种其上存储有指令的非暂态计算机可读设备,指令在由至少一个计算设备执行时使所述至少一个计算设备执行操作,操作包括:

50.根据权利要求49所述的设备,其中,所述重复检查中的每次检查包括,对于所述多个数据库服务器中的每个数据库服务器,连接到相应数据库服务器的作业数据库的所述一部分。

51.根据权利要求49和50中的任一项、特别是根据权利要求49所述的设备,其中所述多个数据库服务器中的每个数据库服务器包括对要存储在作业数据库中的作业描述进行排队的消息代理,并且所述重复检查中的每次检查包括,对于所述多个数据库服务器中的每个数据库服务器,检查从客户端计算设备接收web抓取请求的服务器与相应数据库服务器的消息代理之间的连接。

52.根据权利要求49至51中的任一项、特别是根据权利要求49所述的设备,其中所述多个数据库服务器中的每个数据库服务器包括对要存储在作业数据库中的作业描述进行排队的消息代理,并且所述重复检查中的每次检查包括,对于所述多个数据库服务器中的每个数据库服务器,检查在相应数据库服务器的消息代理内排队的消息的数量。

53.根据权利要求49至52中的任一项、特别是根据权利要求49所述的设备,其中所述多个数据库服务器中的每个数据库服务器是在作业数据库的水平分区中管理存储的分片。

54.根据权利要求49和53中的任一项、特别是根据权利要求49所述的设备,其中所述多个数据库服务器中的每个数据库服务器不彼此同步状态。

55.根据权利要求49和54中的任一项、特别是根据权利要求49所述的设备,其中所述多个数据库服务器由多个不同的计算设备执行。

56.根据权利要求49和55中的任一项、特别是根据权利要求49所述的设备,还包括:

57.一种用于确定哪些服务器可用于处理web抓取作业的系统,包括:

58.根据权利要求57所述的系统,其中数据库监视器被配置为,对于所述多个数据库服务器中的每个数据库服务器,检查请求摄入管理器与作业数据库之间的连接。

59.根据权利要求57和58中的任一项、特别是根据权利要求57所述的系统,其中所述多个数据库服务器中的每个数据库服务器包括对要存储在作业数据库中的作业描述进行排队的消息代理,并且数据库监视器被配置为,对于所述多个数据库服务器中的每个数据库服务器,检查从客户端计算设备接收web抓取请求的服务器与相应数据库服务器的消息代理之间的连接。

60.根据权利要求57至59中的任一项、特别是根据权利要求57所述的系统,其中所述多个数据库服务器中的每个数据库服务器包括对要存储在作业数据库中的作业描述进行排队的消息代理,并且数据库监视器被配置为,对于所述多个数据库服务器中的每个数据库服务器,检查在相应数据库服务器的消息代理内排队的消息。

61.一种用于在多个数据中心上分发web抓取请求的计算机实现的方法,包括:

62.根据权利要求61所述的方法,其中所述api请求是第二api请求,该方法还包括在识别出的数据中心处:

63.根据权利要求61和62中的任一项、特别是根据权利要求62所述的方法,其中第二api请求用于检索由api请求指定的web抓取作业的状态。

64.根据权利要求63所述的方法,其中第二api请求用于检索接收到的抓取的内容。

65.根据权利要求61至64中的任一项、特别是根据权利要求63所述的方法,还包括:

66.根据权利要求61至65中的任一项、特别是根据权利要求61所述的方法,其中主机名对负载平衡器进行寻址,该负载平衡器在接受web抓取请求的多个服务器之间平衡请求。

67.根据权利要求61至66中的任一项、特别是根据权利要求61所述的方法,其中步骤(a)-(c)在数据中心平衡器处执行,该数据中心平衡器选择所述多...

【专利技术属性】
技术研发人员:E·维尔辛斯卡斯A·派斯塔斯克唯奇斯G·斯塔里奥莱提斯M·佳莱维克斯R·斯坦科维休斯
申请(专利权)人:奥科西拉博斯私人有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1