Разделы · Код и программные интерфейсы
Пишу свой сборщик, и на этом месте встал.
Вводные, чтобы не гадать.
Логирую код ответа, время и адрес, по которому шёл запрос. Результаты пишу пачками по тысяче строк.
async with aiohttp.ClientSession() as s:
for i in range(3):
try:
r = await s.get(url, proxy=adres, timeout=30)
break
except Exception:
await asyncio.sleep(2 ** i)
Кто как это обходит?
Если считаете расход заранее, смотрите сразу на безлимит по трафику. У меня серверные адреса IPv4, два терабайта в месяц уходят незаметно и в счёт не попадают.
Считайте по темпу, всё остальное вторично.
Тут легко перепутать два разных момента.
Логируйте код ответа, время и адрес. Три поля, и почти любой разбор потом занимает минуты.
Повторы делайте с растущей паузой: первая через две секунды, вторая через четыре, третья через восемь. Три попытки достаточно, дальше проблема не в связи.
Тема нужная, подписался.
Начните с малого объёма и растите постепенно.
Держите запас, ровно по расчёту работать не выйдет.
Почти так, но одна деталь меняет вывод.
Логируйте код ответа, время и адрес. Три поля, и почти любой разбор потом занимает минуты.