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)
| 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 | """ |
no test coverage detected