了解如何通过简单的代理操作提升请求速度
议程
- 解决常见速度问题的简单步骤
- 为你的目标域名使用最快的 IP 和超级代理
- 减少响应带宽
- 优化代理配置
不想观看网络研讨会?直接阅读文字版
发送和接收请求所花费的时间,对于你的数据收集操作能否成功非常重要。我们将首先向你展示如何加快请求时间。
我会先使用代理管理,它可以让我在请求到达超级代理之前对其进行修改。
代理管理充当爬虫和超级代理之间的中间层,帮助控制并调整发送到超级代理以及代理出口节点(即 peer)的流量。
它还可以控制收到响应后应该执行的操作。
代理管理是一款开源软件,可本地安装在你的电脑上。
你可以从我们的网站下载:bright.cn/products/proxy-manager、github.com/luminati-io/luminati-proxy、npmjs.com/package/@luminati-io/luminati-proxy,以及 hub.docker.com/r/luminati/luminati-proxy/
我们将从查看请求日志开始,这些日志可以在代理管理控制面板中查看,也可以在每个代理端口下的 HAR Viewer 标签页中查看。
点击某个请求后,你将看到该请求和响应的详细信息,以及对应的耗时。
耗时信息会显示请求发送到目标网站并被接收所花的时间,以及响应返回所需的时间。
当发送请求所需的时间超过预期时,我们可以进入代理端口的“Request speed”标签页进行调整。
我可以选择距离我所在位置最近的超级代理,以获得更短的往返时间。
这可以通过代理管理完成:进入 Proxy Manager,在代理端口的 Request speed 标签页中,从 Super proxy’s location 下拉列表中选择所需国家/地区。
请注意,出口节点 IP 的地理位置不会受到超级代理本身位置的影响。
也可以通过地理位置获取超级代理,以降低延迟,命令为 servercountry-COUNTRY_CODE.zproxy.lum-superproxy.io。目前,支持用于获取超级代理的国家/地区代码包括 AU, CN, GB, IN, NL, US。
例如,要获取来自澳大利亚的超级代理,只需运行以下命令:servercountry-au.zproxy.lum-superproxy.io
另一种提升速度的方式,是通过不同的超级代理并行多次发送每个请求,并使用其中最快的一个。
这可以通过将 Parallel race requests 设置为 3,并将超级代理的最小数量设置为 5 来完成。
设置“resolve DNS at the super proxy”也会比在 peer 端解析更快。
完成设置后,请向目标网站发送一个请求做一次简短测试,以确认请求成功。
另一种提升请求速度的方法,是设置速度阈值,并保存一组满足该阈值的 IP。
这可以在代理管理的 Rules 标签页中完成。
我会创建一条规则:当请求满足我的时间阈值,或低于该阈值时触发,方法是选择 Request time less than 并设置为 500 毫秒。
接下来,将动作选择为 Save IP to fast pool,这会为我的特定目标网站创建一个最快 IP 池,我会将池大小设置为 20 个 IP。
请记得启用 HTTPS analyzer,以便代理管理规则能够适用于 https 协议。
请参阅 bright.cn/faq#proxy-certificate 上的说明。
根据你的操作系统和浏览器,你可以在那里找到更具体的说明。
要优化较慢的响应时间,可以从响应中移除不必要的文件。
这可以在 Rules 标签页中完成:在 regex 字段中选择要移除的文件类型,并为特定 URL 启用触发器。
你可以在右侧看到以 JavaScript 函数形式呈现的规则,并将其复制到你的代码中。
请注意,务必点击规则部分下方的 Test 来测试你的规则。
数据中心网络和静态住宅代理对每个 IP 的限制为每秒 500 个请求。
当达到这个阈值时,你会收到以下错误:CODE 429: TUN_ERR: Too many requests per IP
要解决这个问题,可以降低请求速率,或购买更多 IP,将负载分散到更多数据中心 IP 上。
数据中心 IP 是机器 IP,而静态住宅 IP 是 ISP IP,它们速度非常快,并且可以按需长期使用。
使用由数千万真实用户 IP 组成的住宅代理网络时,请求数量没有限制。
Bright Data 有许多客户每天发送超过 2000 万个请求。
对于每天运行数千万请求的客户,理想配置是将你的爬虫或机器人连接到代理管理,或通过 API连接到代理管理,再由代理管理连接到超级代理。
代理管理安装在你的本地环境中。在高负载情况下,有必要将流量负载分配到多个代理管理实例中。
否则,由于单台代理管理机器上的流量负载过高,你可能会收到 502 错误代码。
要配置多个代理管理实例,请先在一台电脑上安装代理管理,设置所需的代理端口、代理端口的目标、网络规则和端口配置。
代理端口可以在 General 标签页中配置,并选择 Yes 来启用 SSL logs。
现在,将你希望连接到该代理端口的 IP 加入白名单,也就是你的爬虫或机器人所在机器的 IP。
这将确保只有被允许的来源才能使用代理管理中的各个代理端口。
只需从你的爬虫机器获取 IP,将其输入到 Whitelist IPs access 字段中,然后点击 V。
现在进入 Manual Configuration 标签页并复制 JSON 文件。
要在其他机器上安装代理管理,请进入 Manual Configurations 标签页,点击 edit,粘贴 JSON 文件并保存。
这会复制你定义的所有代理端口及其配置,包括已加入白名单的 IP。
现在,我们已经有了几台运行代理管理的机器,接下来可以通过将请求指向对应的机器 IP 和代理管理端口,在多个实例之间拆分流量。
请求会像这样:request 1 -> [first server IP]:24000request 2 -> [second server IP]:24000
注意:请记得按照前文所述安装代理管理证书。
总结本次网络研讨会,提升请求速度的步骤包括:
- 根据你的位置,将流量路由到最快的超级代理
- 通过多个超级代理并行发送请求,以使用最快的那个
- 在超级代理端解析 DNS
- 从响应中移除不必要的文件
- 将最快的 IP 保存到快速 IP 池中,以便后续使用
- 将流量负载拆分到多个代理管理实例和机器上
希望本次网络研讨会对你有所帮助。欢迎访问我们的常见问题页面,或观看我们过去的网络研讨会,相关内容可在 bright.cn/webinar 找到。
