def _update_proxy_list(self):
try:
self.params['detail'] = ''
async with aiohttp.ClientSession(loop=self.loop) as session:
with async_timeout.timeout(self.timeout, loop=self.loop):
async with session.request('GET', self.agent_addr,
auth=self.auth,
params=self.params) as resp:
body = await resp.read()
proxies = json.loads(body.decode('utf-8'))
if len(proxies) > 0:
res = []
for p in proxies:
if self.min_success_rate > 0:
if p['success'] >= self.min_success_rate * (p['success'] + p['fail']):
res.append(p['addr'])
elif self.min_count > 0 and len(res) < self.min_count:
res.append(p['addr'])
else:
break
else:
res.append(p['addr'])
self.proxies = res
except Exception:
log.warning("Error occurred when get proxy list", exc_info=True)
评论列表
文章目录