Разделы · Код и программные интерфейсы
Переписываю старый скрипт и хочу сделать правильно.
Ниже вводные, дальше сам вопрос.
Результаты пишу пачками по тысяче строк. Состояние прогона храню в файле, чтобы продолжать после обрыва.
Хочется услышать цифры от практиков.
Тут есть тонкость, о которой обычно забывают.
Разбор ответа держите отдельно от сбора. Тогда смена разметки не требует перегонять данные заново, достаточно перечитать сохранённое.
Пул под такие объёмы держу постоянный. Беру приватный пул IPv4, потому что там разброс по подсетям нормальный, а это на съёме важнее скорости.
Логи в помощь, без них это гадание.
Работает, пока объём небольшой. Дальше правила другие.
Логируйте код ответа, время и адрес. Три поля, и почти любой разбор потом занимает минуты.
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)
Отпишитесь, чем закончится, тема полезная.
Какая версия программы и что с настройками по умолчанию?