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