gpt4 book ai didi

从代理 IP 列表中选择最佳代理 IP 的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:26:06 25 4
gpt4 key购买 nike

我正在抓取多个网站,比如 site1、site2、....、site100。我使用代理 ip 列表来抓取它们让我们说 ip1, ip2, ..., ip10。每当我从网站抓取任何页面时说 site5 我调用函数 getProxyFor(site5) 给我代理 ip 我应该用来从 请求页面站点 5getProxyFor 检查返回已用于 site5 次数最少的代理 ip(我可以附加条件,例如代理的年龄或成功请求的总数(组合对于所有站点)已发送,等等)。所以基本问题是

From a list of items where each has a few properties, I want to choose an item by querying on one or more of its properties

我可以像 rdbms 这样存储所有这些数据

IP     | Site     | Count 
ip1 | s1 | 5
ip1 | s2 | 9
ip2 | s2 | 1

并执行类似 select ip from table order by count limit 1 的查询(我可以使用限制 5,然后检查这 5 个 ip 的年龄和其他内容)。但是,如果我不想使用 sql 数据库怎么办?我应该使用什么数据结构来有效查询此类数据

最佳答案

我会使用 redis对于这种类型的功能。具体来说,redis 有 sorted sets ,这使您能够获得使用次数最少的 IP(假设您使用 IP 的使用次数作为 key 的分数)。

如果您有一组更复杂的标准来确定接下来使用哪个 IP,您可以通过将其作为标准的函数来计算 key 的分数(假设函数的输出是一个数字) .例如。 score = f(last_time_used, latency, number_of_times_used)

此外,redis 存储在内存中,因此与 SQL 相比,它快得惊人

关于从代理 IP 列表中选择最佳代理 IP 的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25646101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com