一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

智能代理轮换器的制作方法

2022-02-25 21:46:45 来源:中国专利 TAG:


1.本发明实施例涉及例如用于同时处理多个程序的数据处理设备,两个或更多的数字设备的组合体,每个数字设备至少具有算术单元、程序和寄存器。更具体地,本发明实施例涉及特别适合于评估统计数据,并基于此类评估进行特定动作的数字计算或数据处理设备和方法。


背景技术:

2.代理服务器是接受来自客户端的请求并将该请求转发给其他代理服务器、源服务器,或者从它们自己的高速缓存服务该请求的中间服务器。代理服务器是充当顾客计算设备的中介的连接到网络的计算设备,代理服务器从“网络资源”请求服务或数据、接受来自顾客代理服务器的请求、并且或者将该请求转发到其他代理、重定向到所请求的资源,或者从位于本地或远程或分布在多个系统上的它们自己的高速缓存来服务该请求。
3.代理也被称为

服务器’或

网关’。代理允许网络上的用户浏览web,通过文件传送协议(ftp)发送文件,以及使用电子邮件和其他因特网服务来工作。代理基本上执行以下操作:i)从防火墙内部的客户端接收请求;ii)将请求发送到防火墙外部的远程服务器;iii)获得响应;以及iv)将响应发送回客户端。
4.根据提供的功能或使用的服务器,代理可以被分成不同的类型。代理也可以被划分为住宅网际协议(ip)代理、数据中心ip代理和移动ip代理。住宅ip代理是链接到物理设备,例如移动电话机或台式计算机的ip地址。住宅ip代理的真正拥有者,即因特网服务提供商(isp)在公共数据库中登记住宅ip地址,这允许网站确定设备的因特网提供商、网络和位置。数据中心ip代理是分配有数据中心ip的代理服务器。数据中心ip是公司而不是个人拥有的ip。数据中心代理实际上是不位于自然人家中的ip地址。相反,数据中心代理与二级公司关联。移动ip代理的行为类似于住宅代理。移动ip代理本质上是从移动运营商获得的一个ip地址。移动ip代理使用移动数据,与使用宽带isp或家庭wi-fi的住宅代理相反。代理服务器基本上是因特网上的计算机,它具有客户端的计算机知道的它自己的ip地址。当客户端发送web请求时,该请求首先转到代理服务器。然后,代理服务器代表客户端发出web请求、收集来自web服务器的响应、并转发网页数据,使得客户端可以在浏览器中看到该页面。当代理服务器转发web请求时,代理服务器可以对数据进行更改,但是仍然提供所请求的数据。代理服务器改变客户端的ip地址,从而web服务器不被提供客户端的地理位置。代理可以加密客户端的数据,使得客户端的数据在传输过程中变得不可读。此外,代理服务器可以基于ip地址或域名阻止对某些网页的访问。
5.现代的代理服务器不仅仅是简单地转发web请求。例如,现代的代理服务器可以进行一些附加功能以增加数据安全性和网络性能。代理服务器充当防火墙和web过滤器,提供共享网络连接,以及高速缓存数据从而加速常见的请求。代理服务器可以提供高水平的隐私。代理服务器改变web请求包含的ip地址和其他识别信息(例如,使得目的地服务器不知道谁发出了原始请求)。代理服务器也可用于控制员工和孩子的因特网使用(例如,组织和
父母设置代理服务器来控制和监视他们的员工或小孩如何使用因特网),或者提高浏览速度和节省带宽(例如,代理服务器可以高速缓存(本地保存适当的网站数据的副本)热门网站,并且当发出请求时,将所保存的副本发送给客户端)。
6.通过使用户能够通过(远程)代理服务器请求内容而不是直接访问内容,代理可以用于绕过某些因特网限制(例如防火墙)。代理服务器通常用于绕过基于地理ip的内容限制。如果有人想从例如美国网页获取内容,但是他们不能从他们本国访问,则他们可以通过位于美国(并且具有美国ip地址)的代理服务器发出请求。通过使用代理服务,用户的流量似乎来自美国ip地址。代理也可用于web抓取、数据挖掘和其他类似的任务。
7.代理提供商可以控制代理的质量,并决定客户端所使用的一组代理将服务于哪些网际协议(ip)地址。如果同一代理用于太多的请求,则该代理最终将被因特网服务提供商或网页禁止,并且将不能使用这样的代理来发出随后的请求。如果短时间内来自一个ip地址的请求过多,则站点将返回某种错误消息,并在预先设定的一段时间内禁止来自该代理的请求。为了防止错误或不被允许的请求,按照使用率或其他预定因素轮换代理。所述轮换足够快,使得目标网站服务器不提供任何错误,并且不阻止使用代理进行额外的请求。
8.虽然一些系统操作单独的代理、管理代理列表并帮助为特定用户或用户设备选择单独的代理进行长时间的会话,但是这些系统不提供包括代理提供商的逻辑实体的代理抽象层,也没有规模更大地管理代理服务访问。
9.虽然一些系统基于在短时间内出现的一个或数个请求来检测代理可用性,但是这些系统不保存关于代理的使用的统计信息。另外,这些系统在较长时间内不评估代理,并且不总结代理服务质量和可用性。此外,当前的轮换方法不改变代理使用的总体配置。
10.例如,考虑到数个请求来评估一些代理,并从最可用的到最不可用的列出这些代理。该过程可能连续不断地重复,但是不保持或测量总体的统计数据。另外,按照代理可用性的变化,并在代理的值改变之后,web浏览器需要用“最佳的”proxy/socks服务器周期性且动态地更新,从而代理列表需要不断更新。另外,现有技术没有公开在不需要额外干预的情况下统计数据的自动收集和阈值的自动配置。另外,现有技术的系统在总结生成的数据以及改变代理的可用性时需要持续的人为监督和干预。
11.此外,不能获得请求的匿名性或发出请求的客户端的隐私。传统的方法是在代理管理提供商的域内终止加密的会话,这会损害请求的隐私。


技术实现要素:

12.在一个方面,本发明实施例使用相同的代理列表,并且所公开的代理的提供商的轮换允许客户端以最有效的方式使用代理。通过本发明实施例,即使使用有限的代理列表,本发明实施例也使客户端能够使用自动轮换系统以最有效的方式使用代理。在本发明实施例中公开的系统确保代理不会耗尽(例如,当代理使用限制达到由提供商建立的阈值时,可能发生耗尽)。在另一方面,本发明实施例以配置的间隔测量提供商的耗尽率并修改提供商的使用率。
13.本发明实施例防止大量阻塞使提供商的代理池耗尽从而使提供商失效或禁用提供商。由于持续不断地收集和分析每个客户端请求的服务质量度量,因此使智能代理轮换器(spr)能够迅速拦截由提供商的代理所服务的客户端请求的较高阻塞率。spr的使用允许
及时降低所述提供商的利用率,从而防止相应代理池的ip地址的进一步阻塞,并避免完全禁用提供商。在提供商已经被阻塞的情况下,则使针对提供商登记的所有代理都处于预先配置的冷却时段,从而从活跃轮换中移除代理。在冷却时段之后,使代理返回到主动轮换。此外,检测较高的错误/阻塞率spr功能允许在预先配置的一段时间内暂时排除对应代理池的使用。这种暂时排除使内容提供商可以降低错误/阻塞率以恢复正常。
14.本发明实施例确保客户端请求的更好服务质量。由于代理轮换器不断收集每个客户端请求的与代理服务质量相关的度量,基于所述度量的分析,spr动态地调整提供商的使用,从而避免使用错误率高的代理并确保客户端请求的较高成功率。
15.在本发明实施例中,代理服务质量反馈是从客户端点而不是从服务提供商的基础设施获得的。因此,客户端点可以安全地使用来自外部提供商的代理轮换服务,而不会损害加密web会话的安全性/隐私,在客户端点和目标web服务器以外的点终止加密隧道会发生损害加密web会话的安全性/隐私的情况。
16.此外,加密的客户端请求内的数据在任何时候对于spr和服务该请求的代理都是不可破译的。在web抓取器(scraper)和目标之间的https会话期间,除初始握手以外,所有数据都被放置在加密的隧道中,并且只能由隧道的参与者-即,web抓取器和目标web服务器读取。为了获得这种加密会话的统计数据,在所提出的实施例中,在隧道被终止,即,数据被解密的点处收集统计数据。
17.本发明实施例提供了通过使用计算机程序来有效地管理代理服务的系统和方法,所述计算机程序自动轮换代理并收集代理的可用性的统计数据,并按照收集的统计数据调整代理使用。
18.本发明实施例至少解决了以下问题中的一些问题:a)收集抓取加密会话的会话质量度量,而不损害会话的隐私,例如,不引入中间人结构;b)由于代理可用性快速变化而提高了客户端请求的服务质量,并在不需要人工干预的情况下调整配置;c)防止代理提供商在其代理池内的所有代理都被禁止时由于代理池耗尽而被禁用。
附图说明
19.以下的详细说明参考了附图,附图中:
20.图1是表示spr 1的总体架构和解决方案功能的至少一个方面的上下文的组件图。
21.图2是描述spr 1的两个示例性用例的序列图或流程图。
22.图3a是展示为客户端的web抓取器10选择代理的过程的流程图。
23.图3b支持由web抓取器10收集代理性能度量并将代理性能度量提交给spr 1的方法。
24.图4展示帮助决定何时应更改提供商的使用优先级或权重的决策算法。
25.图5是其中计算机可读介质提供用于执行本文中的方法的指令的示例性计算系统的方框图。
26.图6是涉及本发明实施例的示例性方法的流程图。
27.图7是涉及本发明实施例的另一示例性方法的流程图。
具体实施方式
28.一些通用的术语描述可能是有帮助的,为了方便起见包括在本文中,并且意欲以尽可能广泛的解释来解释。
29.元件1至9是智能代理轮换器的组成部分。元件10至12是外部系统。
[0030]1‑“
智能代理轮换器”是由独立组件耦接而成的系统,实现特定方法并负责收集统计数据、代理控制、轮换、维护和报告。
[0031]2‑“
轮换器引擎”是分析代理使用并选择使用哪个代理提供商的组件。
[0032]3‑“
配置”是存储spr操作设定(例如但不限于代理提供商的权重、错误率阈值、其他配置设定)的数据库。该数据库还可以包含关于提供商和目标的信息,以及与它们关联的设定或其他相关信息。配置数据库由轮换器引擎2读取,以收集包含在其中的操作设定(在图1的步骤22)。
[0033]4‑“
冷db”是其中存储包含关于代理及其配置属性的信息的组件的数据库。
[0034]5‑“
轮换器数据库”是包含在数据存储设备,例如计算机盘或计算机存储器内的结构化数据系统。轮换器数据库在spr启动期间用来自“配置”3和“冷db”4的数据填充,并确保对操作设定和代理信息的快速访问。
[0035]6‑“
时序db”是用于通过关联的时间和值对来存储并提供事件记录的结构化数据系统。在许多情况下,时序数据的储存库利用压缩算法来高效管理数据。
[0036]
7-spr 1的“api”或应用编程接口是负责spr与外部系统通信的组件。api启用的两种方法是向web抓取器10提供代理11和从web抓取器10接收关于代理11的反馈。api将从web抓取器10接收的整个通信提供给轮换器引擎2(在图1的步骤24)。
[0037]8‑“
检查器”是检查被禁用的提供商的代理并且当代理恢复在线(如果适用)时用信号通知轮换器引擎2将该代理包括在轮换中的软件。
[0038]9‑“
图表”是从时序记录产生实时图表,用于实时状态仪表板以及报告的组件。
[0039]
10
‑“
web抓取器”是至少部分自动化的计算机程序或脚本,它从网络收集数据或内容以便复制内容或用于数据分析。web抓取软件使用超文本传送协议、https、ftp或其他协议,直接访问web资源或采用代理作为中介。
[0040]
抓取网络内容涉及取回内容并从该内容提取或收集数据。取回是包括目标所包含的大量对象的信息的下载(例如,当在网页上查看内容时,浏览器下载内容)。抓取的内容可以被解析、搜索或重新格式化,并且内容的数据被或者可以被复制到电子表格中,和/或可以进行类似的动作。
[0041]
11
‑“
代理
”‑
对于客户端连接开放的代理服务器(计算机系统或应用),它充当客户端从其他服务器寻求资源的请求的中介。客户端连接到代理服务器,请求某些服务,比如文件、连接、网页、或可从不同服务器获得的其他资源。代理服务器评估对内容的请求,并通过包含实际内容的一个或多个实际目标资源转发该请求。在获得内容之后,代理服务器通常将内容转发给原始请求者,不过也可以进行代理的其他动作(例如,返回错误消息)。取决于请求的类型,代理服务器可以具有或不具有对于为原始请求者取回的实际内容的完全可见性,例如,在加密的https会话的情况下,代理服务器可以充当中介,盲转发数据而不知道转发的是什么。
[0042]“代理提供商
”‑
作为服务提供实际代理的一方。代理服务意味着充当客户端从其
他服务器寻求资源的请求的中介的任何代理服务器。许多可用类型中的一种是代理使用的ip地址类型,包括但不限于住宅ip代理、数据中心ip代理和移动ip代理。
[0043]
13
‑“
目标”或“目标服务器
”‑
提供可通过http/https协议访问的内容的web服务器。
[0044]“客户端
”‑
请求并使用spr以便获得代理连通性信息的个人或商业实体。
[0045]“设备”或“处理设备
”‑
云服务器、大型机、笔记本电脑、台式计算机、平板电脑、工作站、移动设备或任何其他电子设备。
[0046]“db
”‑
数据库。
[0047]“网络
”‑
允许节点共享资源的数字电信网络。网络的例子:局域网(lan)、广域网(wan)、校园区域网络(can)、城域网(man)、家庭区域网络(han)、内联网、外联网、网间网、因特网。
[0048]
在一个方面,本发明实施例包括用于有效地管理代理服务质量的系统和方法。本领域的普通技术人员将认识到,本发明实施例的以下详细描述仅仅是说明性的,并不旨在以任何方式进行限制。受益于本公开的本领域技术人员易于提出本发明的系统和方法的其他实施例。现在将详细参考如在附图中所示的本发明实施例的实现。在整个附图和以下的详细说明中将使用相同的附图标记来指代相同或相似的部分。
[0049]
智能代理轮换器(spr)1的特征之一是平衡列表中的代理11,并防止代理在代理被过度使用或者错误率15增加时出现故障。由于一个目的是当目标开始拒绝来自相同代理的进行中的请求时,不耗尽特定提供商的代理列表(即,不禁用所有可用的代理)。spr 1以配置的间隔测量提供商的质量率(例如包括,使用代理的频率,代理是否将请求的内容返回给客户端,代理是否可用,以及类似的质量),并降低一个提供商的使用同时按照一个或多个其他提供商的权重增加一个或多个其他提供商的使用。质量率是定期地测量的,并且可以按任何选定的间隔来测量(间隔率不存在任何限制)。测量间隔(或测量时段13)的长度在目标配置中设定(示例表2,行4)。还为每个提供商设定了代理耗尽阈值(示例表2,行10-19)。在被激活时,spr 1将代理提供商的状态配置为正常或不正常。当代理耗尽率低于最小(min)阈值时,提供商被视为处于正常状态,并且可以按在配置(配置3)中设定的权重进行操作。当达到最大(max)值时,spr 1停止使用该提供商,并将提供商的状态变更为不正常。然后,spr 1在(配置3,示例表2,行14)中设定的时间段内停止使用该提供商,并在耗尽率再次降低到最小阈值以下时再次开始使用该提供商。当耗尽率在最小阈值和最大阈值之间时,spr按照耗尽率降低使用权重(图4)。
[0050]
影响代理提供商利用的另一种类型的错误是代理不可用事件,例如网络错误或处理错误。然后spr 1不把这些代理提供给web抓取器10,并且一旦达到错误阈值max 14就禁用提供商。spr 1具有内部组件检查器8,检查器8立即开始检查提供商的可用性,并且如果提供商再次变得可用,则尽快使提供商恢复为可供使用。
[0051]
在spr 1系统和方法中,轮换器数据库5负责存储、收集和改变每个提供商的权重。每个提供商应具有在每个目标配置3中设定的初始权重(示例表2,行8)。初始配置可以由每个客户端单独设置,或者可以由代理的提供商提供。由于每个提供商只能支持一定数量的并发连接,因此spr 1计数有多少提供商的代理被提供给web抓取器10并且没有返回反馈。由于提供商的代理的计数接近并发连接的最大数量,因此如果该计数达到最大并发连接,
则spr 1不再允许增加该代理提供商的使用权重,而是减少该代理提供商的使用。spr 1甚至可以指示web抓取器10停止使用提供商的代理,以便减少该提供商的使用。
[0052]
对于一些目标,web抓取器10使用同一代理来发送数个内容请求,例如从目标web服务器获得一些网页,或者获得网络中的任何其他类型的内容,以便在不引起阻塞机制的情况下获取数据。
[0053]
代理在轮换之前服务于数个请求的能力是由分配给该代理所属的代理提供商的属性声明的。该属性在提供商的配置参数“is_static(是_静态)”内定义(示例表1,行4)。如果该功能可用,则spr 1可以将同一代理11用于针对同一目标12的数个请求。如果该功能不可用,则对于每个请求,spr 1使用不同的代理来联系目标12。在所公开的实施例中,该功能由参数“is_static”标记,不过可以使用任何其他术语来指示该功能。
[0054]
与本解决方案相关的代理的类型可以包括但不限于出站ip地址的类型(例如,多对一:静态单个出站ip地址,或动态分配的单个出站ip地址;或者多对多:轮换预先定义的出站ip地址池)。
[0055]
在一个方面,spr 1的一个目的是按照在当前活跃的配置设定内定义的提供商的权重,在为特定顾客定义的多个代理提供商之间平衡使用。使用例子之一如下:如果一个提供商具有等于10的权重,而另一个提供商具有等于20的权重,则当没有引入对提供商的默认权重的任何变更时,代理轮换器应在66.6%的时间内使用第二个提供商,在33.3%的时间内使用第一个提供商。这些百分比是每个提供商的利用阈值。spr 1测量每个提供商的带宽、可用性和使用,并通过自动配置和变更权重来对代理使用反馈做出反应。
[0056]
通过评估提供商的权重,spr 1以适当的方式,例如轮询地(round robin)从提供商的代理池中选择单独的代理11。备选方法例如可以是但不限于随机或最少使用。通过api 7,spr 1将代理11信息传递给客户端。包括在传递的信息中的属性可以是但不限于:代理id、要连接到的端口、认证凭证、国家、is_static属性开/关、http/https协议、或其他属性。
[0057]
图1概括地图解说明了按照一个或多个实施例的系统的架构。图2表示了spr 1的两个主要功能的示意图。第一种使用:spr 1接受来自客户端的web抓取器的对代理的请求,按照当前有效的操作设定选择适当的代理,以及将所述代理连通性信息发送到所述客户端。操作设定是在spr启动之前手动配置的。spr操作设定可以是但不限于代理提供商的权重、错误率阈值、验证码(captcha)测量时段、提供商的阻塞阈值、提供商的休止时段、提供商的恢复率、冷却时段、提供商的禁用日期,提供商的可用功能(例如,“is_static”参数)、流量限制、最大并发连接限制、其他配置设定。第二种使用:spr 1定期聚集“内存数据库”内累积的关于代理服务质量的统计数据,计算每个提供商的总体服务质量度量,将结果值与当前为所述一个或多个提供商配置的阈值进行比较,以及更新“内存数据库”内的提供商的利用阈值。
[0058]
在一个实施例中,通过任何可用的渠道,预先向客户端提供性能度量收集代码以便集成到web抓取器10软件中。客户端将所述代码集成到web抓取器10应用中,作为在客户端对spr 1的请求发生之前度量收集起作用的先决条件。所述代码可以被集成到任何可用的web抓取器10中,所述web抓取器10可以把内置数据、图像、文档提取器和编辑器用于定制的web抓取器以及自动探索和提取作业或类似的工具。所述代码可以作为与相关的api 7一起下载或者以其他可用方式安装的向现有应用添加特定的轮换器引擎2的特征的插件集成
到web抓取应用中。
[0059]
一旦安装,spr 1启动,读取盘上的配置3文件(步骤22表示从盘上的配置文件读取操作设定),连接到冷db 4(步骤23示出从盘上的冷db读取代理列表),并用来自这两个源的代理和提供商细节填充轮换器数据库5。这些步骤可以由spr 1同时进行,或者一个步骤接一个步骤地依次进行。一旦启动,spr 1还连接到统计数据/报告db(时序db 6)。spr 1还准备好与诸如客户端的web抓取软件之类的外部系统通信。
[0060]
spr 1的使用始于连接到spr 1的客户端的web抓取软件10发出web抓取或其他数据收集请求。web抓取器10联系spr 1,为针对目标内容(例如网页)的每个请求,请求代理。该过程还包括:spr 1接受来自客户端的web抓取器10的对代理的请求(步骤25a),选择适当的代理并将连通性信息发送到客户端(步骤25b)。
[0061]
所述请求规定了适合该请求的代理的资格标准。spr 1服务对代理的请求的过程包括以下步骤:1)spr 1接受请求(步骤25a);2)spr 1评估客户端提供的资格标准;3)spr 1按照当前有效的目标配置,例如提供商使用优先级(权重)和代理资格标准,选择代理提供商;4)spr1使用任何可用算法(例如,轮询方式或适当的备选算法)从所选的提供商内选择代理。算法和提供商的配置3中的

max_concurrent_connections(最大_并发_连接)’参数(示例表1,行23)使spr 1可以均匀地分配和控制子网/提供商负载);5)spr 1将所选代理的标识和连通性信息发送到客户端的web抓取器10(例如但不限于:标识、ip地址、tcp端口、凭证、代理的类型、国家、多会话支持、http/https协议支持(步骤25b));6)web抓取器10使用该代理来执行请求(步骤26a),并通过所提供的代理获得目标数据(步骤26b);7)web抓取器10内的代码截取上述代理会话的相关质量/性能度量,并收集代理的性能和可用性信息;8)web抓取器10将代理的性能和可用性信息发送给spr 1(步骤27a);9)spr 1将获得的代理的性能和可用性信息登记在轮换器数据库5内;10)如果按照收集的数据需要改变利用阈值,则校正利用阈值;以及11)在这些步骤之后确认代理可用性(步骤27b)。
[0062]
对质量度量分析以及动态修改spr 1操作设定(比如代理提供商的利用阈值之类)的描述包括以下步骤:1)spr 1定期聚集累积在轮换器数据库5内的关于代理服务质量的统计数据及性能和可用性信息;2)计算每个提供商的总体服务质量度量;3)将结果值与当前为所述一个或多个提供商配置的利用阈值进行比较;以及4)更新轮换器数据库5内的提供商的利用阈值(步骤21表示更新内存数据结构中的操作设定)。对于代理的所有后续请求都将被评估并对照这些值来服务(步骤20表示从内存数据结构中读取操作设定)。
[0063]
分析可以触发对目标的设定内的特定代理提供商或代理服务器或代理服务器配置的更改、修改针对提供商的负载,例如相对于其他提供商减小或增大利用阈值或者禁用提供商。
[0064]
定义提供商的状态和任务的资格的多个标准包括但不限于:提供商的服务开始和结束的硬编码日期;流量限制;并发会话限制;每个代理支持多个会话。
[0065]
定义特定请求的代理资格的准则包括但不限于:代理id、代理状态、代理响应时间、传送的数据大小。代理状态指示在一次使用代理之后发生了什么。可能的值可以是但不限于:ok、验证码(captcha)、连接错误、代理错误、服务器错误、超时等。数据的大小指示用特定代理下载了多少数据的数量(以字节为单位)。响应时间指示从发出请求到用所使用的代理接收完整响应之间的时间量。
[0066]
下面是配置3内的提供商的设定的例子。
[0067]
示例表1。
[0068][0069][0070]
以相似的方式,网页目标或从网络收集任何其他内容的目标可以描述如下:1)支持的协议:http/1.1、http/2;2)对于所述目标有资格的提供商,以及每个提供商的参数:提
供商的初始硬编码的使用优先级或相对权重;3)用于测量错误的时间段、阻塞率阻塞阈值(min/max);4)(错误阈值min 16、错误阈值max 14);和5)当错误率15达到它们的最大阈值14时的冷却时段。
[0071]
下面是配置3内的目标的设定的例子:
[0072]
示例表2。
[0073]
[0074][0075]
以下支持功能由多个spr 1组件支持。
[0076]
服务质量仪表板和报告依赖于时序db 6和图表9。时序db登记与时刻相关的代理
服务利用事件(步骤28)。图表组件连接到时序db以获得时序记录,以便生成报告图表(步骤30)。报告图表使以下非限制性的报告列表可视化:a)目标正在使用哪些提供商;b)提供商具有的代理数量;c)每个提供商的处于冷却状态的代理数量;d)目标和提供商的验证码(captcha)率;e)目标和提供商的错误率;f)默认提供商权重和当前提供商权重;g)目标和提供商的响应时间;h)每个提供商所使用的流量;和i)提供商的代理的位置信息。spr 1还具有作为并行任务扫描代理位置而不干扰主代理轮换器功能的能力。一般对于在提供商配置中具有设定为

true(真)’的

scan_locations(扫描_位置)’参数(配置3,参见示例表1示例表1t,行5)的那些提供商扫描代理位置。一些提供商(比如许多住宅提供商之类)不具有静态ip地址,从而不执行位置扫描。当添加新的代理时或当ip位置数据库每月一次更新它们的记录时扫描位置。
[0077]
取决于代理是否被阻塞或是否接收到错误或代理以任何其他方式被耗尽,spr可以使单个代理或整个子网的代理网冷却一段时间。如果

subnets_exists(子网_存在)’参数被设定为

true’(示例表1,行12)和

scope’参数被设定为

subnet(子网)’(示例表2,行23),则一般使子网冷却。
[0078]
spr 1对给定时段内的流量进行计数,并且如果达到限制则禁用提供商,或在即将达到限制时发出通知。这是借助web抓取器10的发送

size_download(大小_下载)’(图3b中api 7)度量(某个代理使用了多少通信量)的能力和提供商配置中的参数(配置3,示例表1,行18)实现的。可以设置

limit(限制)’参数(示例表1,行19),用于测量任何计算机存储容量(比如,太字节、字节或其他单位)。

start_date(开始_日期)’和

end_date(结束_日期)’(示例表1,行20-21)设定所述限制的时间范围。
[0079]
对聚集的统计信息的分析不仅可以减少/增加代理/代理提供商的使用,而且:由于错误率/阻塞率高,spr 1将代理或整个子网置于“冷却”状态。这种冷却的时间间隔在每个提供商的配置内定义,并且可以是任何选定的时间间隔(秒、分钟、小时等)。在指定的时间段过去之后,spr1再次改变配置,激活代理/代理子网,使它们对客户端可用。
[0080]
spr 1由于高连接错误和超时率而禁用提供商。当特定提供商的代理表现出高连接错误和超时速率时,spr 1可以禁用该提供商,将所述代理从轮换中移除。
[0081]
紧随禁用提供商之后,独立的spr 1组件,检查器8,开始连续地探测与提供商的代理的连通性。当检查成功时,激活提供商,并且代理开始再次被提供给客户端。为了避免当提供商停止工作时的巨大错误负载,使用代理提供商的配置中的

disable_date(禁用_日期)’参数(配置3,图4a,行3)。这将禁用代理提供商,并发送提供商的服务在截止日期之前被禁用的通知。
[0082]
在代理提供商(代理服务器)被禁用或达到其使用上限的情况下,spr 1可以利用反馈响应中设定为

false(假)’的参数

usable(可用)’(api 7,图3b),请求停止使用代理11。当参数

usable’被设定为“true”时,web抓取器10可以继续将代理11用于另一个请求。
[0083]
可能存在所有提供商都被禁用,从而spr 1不能向web抓取器10分配代理11的情况。在这种情况下,spr 1发送定制的错误通知或任何其他通知,所述定制的错误通知或任何其他通知向客户端说明没有可用的代理11和web应当再次请求代理的建议的时间。这可以节省许多不必要的请求。
[0084]
独立的组件检查器8专用于检查由于连接错误和服务的不可用性而被禁用的代理
(步骤25)。检查器8从轮换器引擎2接收关于代理的信息(步骤29)。
[0085]
检查(步骤25)的机制可以至少基于以下方法,不过也可以使用其他方法,比如icmp侦测(ping)请求和/或http/https会话尝试。
[0086]
探测的频率是可能针对每个代理提供商的预先配置的设定。上面列出的方法在技术上可以在任何选定的时间段内被触发,优选但不是必需地从几秒到几分钟不等。
[0087]
当:代理提供商具有配置的数据限制并且已达到该数据限制;代理提供商具有“会话数限制”并且已达到该会话数限制;代理提供商缺乏代理;和/或代理提供商达到禁用日期(示例表1,行3)时,禁用代理提供商也可以是显式配置设定。
[0088]
可以根据设计选择,以各种方式组合本文中的实施例。因而,本文中的各个特征和方面不限于任何特定的实施例。此外,实施例可以采取硬件、固件、软件和/或它们的组合的形式。在一个实施例中,这样的软件包括但不限于固件、驻存软件、微代码等。图5图解说明了计算系统400,其中计算机可读介质406可以提供用于执行本文中公开的任何方法和过程的指令。
[0089]
此外,本文中的实施例的一些方面可以采取计算机程序产品的形式,所述计算机程序产品可以从计算机可读介质406访问,以提供供计算机或任何指令执行系统使用或者与计算机或任何指令执行系统结合使用的程序代码。对本描述来说,计算机可读介质406可以是能够有形地存储供包括计算系统400在内的指令执行系统、装置或设备使用或与它们结合使用的程序代码的任何装置。
[0090]
计算机可读介质406可以是任何有形的电子、磁、光、电磁、红外或半导体系统(或装置或设备)。计算机可读介质406的一些例子包括固态存储器、磁带、可拆卸计算机盘、随机存取存储器(ram)、只读存储器(rom)、磁盘和光盘。光盘的一些例子包括只读光盘(cd-rom)、读/写光盘(cd-r/w)和数字通用光盘(dvd)。
[0091]
计算系统400可以包括通过系统总线410直接或间接耦接到存储器408的一个或多个处理器402。存储器408可以包括在程序代码的实际执行期间采用的本地存储器、大容量存储装置和/或高速缓冲存储器,高速缓冲存储器提供至少一些程序代码的临时存储,以便减少在执行期间从大容量存储装置检索代码的次数。
[0092]
输入/输出(i/o)设备404(包括但不限于键盘、显示器、指点设备、i/o接口等)可以直接或通过居间i/o控制器耦接到计算系统400。网络适配器也可以耦接到计算系统400,以使计算系统400能够通过居间的专用或公用网络耦接到其他数据处理系统,比如通过主机系统接口412,打印机和/或存储设备之类。调制解调器、线缆调制解调器和以太网卡只是网络适配器类型的例子。
[0093]
图6是涉及本发明实施例的示例性方法的流程图。如图6中所示,方法600涉及在步骤602,在计算设备上运行智能代理轮换器(spr),在步骤604,由web抓取器按照当前有效的spr操作设定从spr获得代理,在步骤606,通过代理建立从web抓取器到目标服务器的加密连接,在步骤608,web抓取器通过建立的加密连接从目标服务器请求和获得在请求内指定的内容,在步骤610,从web抓取器向spr提供代理的性能和可用性信息,以及在步骤612,在spr相应地计算代理的提供商的权重。
[0094]
图7是涉及本发明实施例的另一示例性方法的流程图。如图7中所示,方法700涉及在步骤702,web抓取器按照当前有效的spr操作设定从智能代理轮换器(spr)获得多个代理
中的第一代理,在步骤704,通过第一代理与目标服务器建立加密连接,在步骤706,通过建立的加密连接从目标服务器请求内容,在步骤708,通过加密连接从目标服务器接收所请求的内容,以及在步骤710,向spr提供第一代理的性能和可用性信息,并且在spr:在步骤712,基于第一代理性能统计数据的分析,计算第一代理所属的代理提供商的权重;以及在步骤714,基于提供商的权重动态地配置代理提供商利用阈值。
[0095]
涉及本发明实施例的一个示例性系统包括至少一个代理服务器、可操作以通过网络提供多个代理的智能代理轮换器(spr),和web抓取器,所述web抓取器可操作以按照当前有效的spr操作设定从spr获得多个代理中的第一代理、通过第一代理与目标服务器建立加密连接、通过加密连接请求和接收在请求内指定的内容,以及向所述spr提供第一代理的性能和可用性信息,其中所述spr可操作以基于第一代理性能,计算所述代理提供商的权重,并且基于所述权重动态地配置所述代理提供商的利用阈值。
[0096]
涉及本发明实施例的一个示例性方法包括由web抓取器10按照当前有效的spr 1操作设定从spr 1获得多个代理中的第一代理、通过第一代理与目标服务器12建立加密连接、通过加密连接从目标服务器12请求内容、通过加密连接接收在请求内指定的内容、以及将第一代理的性能和可用性信息提供给spr 1,和经由spr 1:基于第一代理性能统计数据来计算代理服务器的权重,并且基于所计算的权重动态地配置代理提供商利用阈值。web抓取器10连接到从spr获得的代理,并使用该代理从目标12获得内容。代理提供商的权重的计算可以由spr 1基于对来自至少一个代理11的性能和可用性数据的评估或者基于多个代理11的信息来进行。spr 1在任意配置的时间段,按照由web抓取器10提交的代理性能和可用性信息定期计算和配置代理提供商的权重。在另一个实施例中,web抓取器10在将性能和可用性信息提供给spr 1之前,累积来自多个代理的性能和可用性信息。当达到所配置的最大阈值中的至少一个时,spr 1至少在一段时间内停止使用代理提供商。
[0097]
由web抓取器10收集的性能和可用性信息包括但不限于:代理id、代理状态、代理响应时间、以及通过代理获得的数据的大小。spr 1操作设定可以是不同的并且可以按照操作者的需要而变化。但是这些设定可以是:代理提供商设定、利用阈值、错误阈值和/或代理列表。spr 1操作设定被加载到盘上的数据库、盘上的平面文件、存储器中的数据库或其他存储介质中。在不同的实施例中,spr 1可以被放置在客户端的网络、代理服务提供商的网络或提供代理轮换服务的一方内。
[0098]
公开的示例性计算机程序例如用于动态地配置代理提供商的利用阈值,所述计算机程序包括指令,当由计算机设备执行时,所述指令使所述计算设备:向web抓取器10提供来自代理提供商列表的代理;在代理被用于从目标12获得内容之后,累积由web抓取器10提供的关于代理的性能和可用性信息,其中所述内容对于spr 1是不可破译的;通过评估从web抓取器10接收的性能和可用性信息,计算和配置多个代理提供商的利用阈值。所述计算机程序按照web抓取器10提供的性能和可用性信息,定期重新配置代理提供商的利用阈值。
[0099]
另外,公开了一种系统,所述系统包括:可操作以通过网络提供多个代理的spr 1;以及可操作以从spr 1获得多个代理中的第一代理的web抓取器10。所获得的代理服务对于目标服务器12的一个内容请求。通过第一代理与目标服务器12建立加密连接,以通过加密连接接收在请求内指定的内容,并将第一代理的性能和可用性信息提供给spr 1。spr1可操作以基于第一代理计算代理提供商的权重,并基于该权重动态地配置代理服务器的代理利
用阈值。spr能够基于对来自至少一个代理或多个代理的性能和可用性数据的评估,计算代理提供商的权重。
[0100]
本文中描述的各个实施例提供了至少部分基于代理的使用历史和可用性来改变代理提供商的利用阈值,从而解决了代理提供商的可能过度使用的缺点。在确保代理的充分使用的同时,客户的挫败感将更少。代理或代理提供商的轮换是基于从使用不同的web抓取应用的客户端接收的动态更新,而不是基于由提供代理服务的服务人员计算的统计结果。本发明实施例的方法允许用户可以具有仅在活跃状态下并且随时可用的代理来进行请求。
[0101]
尽管已经描述了数个实施例,不过本领域的普通技术人员会意识到的是,在不脱离本文中详细描述的实施例的范围的情况下,可以进行各种修改和改变。因而,说明书和附图应被认为是说明性的而不是限制性的,并且所有这样的修改都应包括在本教导的范围内。
[0102]
此外,在本文中,诸如第一和第二之类的关系术语可以仅用于将一个实体或动作与另一个实体或动作区分开来,而不一定要求或暗示这种实体或动作之间的任何实际的这种关系或顺序。术语“包含”、“具有”、“包括”、“含有”或它们的任何其他变型旨在涵盖非排他性包含,使得包含、具有、包括、含有一系列要素的过程、方法、制品或装置并不仅仅包括这些要素,而是可以包括未明确列出的或这样的过程、方法、制品或装置固有的其他要素。前接“包含
…”
、“具有
…”
、“包括
…”
、“含有
…”
的要素在没有更多约束的情况下,不排除在包含、具有、包括、含有该要素的过程、方法、制品或装置中存在附加的相同要素。单数形式被定义为一个或多个,除非本文中另有明确说明。术语“大体上”、“基本上”、“近似”、“大约”或其任何其他形式被定义为与本领域普通技术人员所理解的接近,并且在一个非限制性实施例中,该术语被定义为在10%以内,在另一个实施例中,在5%以内,在另一个实施例中在1%以内,并且在另一个实施例中在0.5%以内。本文中使用的术语“耦接”被定义为连接,不过不一定是直接连接,也不一定是机械连接。以某种方式“配置”的设备或结构至少是以这种方式配置的,不过也可以以没有列出的方式配置。
[0103]
要意识到的是,一些实施例描述了一个或多个通用或专用数据库(比如“db”、“冷db”、“时序db”或类似物)的使用,所述数据库包含经过组织使得能够容易地访问、管理和更新的一批信息。计算机数据库通常包含数据记录或文件的集合,在当前情况下,数据库通常存储关于代理或代理提供商的不同信息和统计数据、关于代理提供商的利用阈值的信息。这样的数据库还可以包含关于客户端、所进行的请求、所使用的网络、所使用的代理、所请求的代理的类型和类似数据的信息。数据库被构造成便于结合各种数据处理操作来存储、检索、修改和删除数据。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献