MCPcopy Index your code
hub / github.com/Python3WebSpider/ProxyPool / random

Method random

proxypool/storages/redis.py:52–71  ·  view source on GitHub ↗

get random proxy firstly try to get proxy with max score if not exists, try to get proxy by rank if not exists, raise error :return: proxy, like 8.8.8.8:8

(self, redis_key=REDIS_KEY, proxy_score_min=PROXY_SCORE_MIN, proxy_score_max=PROXY_SCORE_MAX)

Source from the content-addressed store, hash-verified

50 return self.db.zadd(redis_key, {proxy.string(): score})
51
52 def random(self, redis_key=REDIS_KEY, proxy_score_min=PROXY_SCORE_MIN, proxy_score_max=PROXY_SCORE_MAX) -> Proxy:
53 """
54 get random proxy
55 firstly try to get proxy with max score
56 if not exists, try to get proxy by rank
57 if not exists, raise error
58 :return: proxy, like 8.8.8.8:8
59 """
60 # try to get proxy with max score
61 proxies = self.db.zrangebyscore(
62 redis_key, proxy_score_max, proxy_score_max)
63 if len(proxies):
64 return convert_proxy_or_proxies(choice(proxies))
65 # else get proxy by rank
66 proxies = self.db.zrevrange(
67 redis_key, proxy_score_min, proxy_score_max)
68 if len(proxies):
69 return convert_proxy_or_proxies(choice(proxies))
70 # else raise error
71 raise PoolEmptyException
72
73 def randoms(self, count, redis_key=REDIS_KEY, proxy_score_min=PROXY_SCORE_MIN, proxy_score_max=PROXY_SCORE_MAX) -> List[Proxy]:
74 """

Callers 2

redis.pyFile · 0.80
get_proxyFunction · 0.80

Calls 1

convert_proxy_or_proxiesFunction · 0.90

Tested by

no test coverage detected