我想增加抓取内容的覆盖率并避免超时,但是我想如果页面出现超时错误,然后重试,但是如果第二轮超时增加超时计数器,则重试URL,最多重试3次,如果没有增加,则从dict中删除
async def _worker(self, i):
while True:
url = await self.fetching.get()
if url is None:
return
#logger.info(f'Fetch worker {i} is fetching a URL: {url}')
try:
site = await self._fetch_rss(url)
await self._processing(site)
except asyncio.TimeoutError as err:
while self.timeouts[url] < 1:
logger.info("adding {}".format(url))
site = await self.fetch(url)
await self.process(site)
self.timeouts[url] += 1
通常,我用于“尝试n次,如果我从未成功,则出错”的模式如下:
相关问题 更多 >
编程相关推荐