позиции · сбор данных · отчёты
реклама IPrazon Network: приватные прокси IPv4 и SOCKS5, около 12 000 адресов, безлимитный трафик, тест до 2 часов

Разделы · Код и программные интерфейсы

Playwright и прокси: как менять адрес между контекстами

5 ответов · 3 165 просмотров
знак участника limit_watch
limit_watchЗнаток
  • сообщений 2 560
  • на форуме 2 мес
Код и программные интерфейсыгорячая

Код рабочий, но ведёт себя не так, как я задумывал.

Сначала обстановка, вопрос в конце.

Список адресов читаю из файла и раздаю по кругу. На тысяче запросов всё ровно, на ста тысячах начинается расхождение.

Кто сталкивался, поделитесь опытом.

знак участника Панкратов
ПанкратовУчастник
  • сообщений 745
  • на форуме 10 мес
полезный ответ
limit_watch писал: Playwright и прокси: как менять адрес между …

Почти так, но одна деталь меняет вывод.

Сессия должна создаваться один раз и жить весь прогон. Новая сессия на каждый запрос съедает время на установку соединения и путает настройки.

Логируйте код ответа, время и адрес. Три поля, и почти любой разбор потом занимает минуты.

знак участника Ханин П.
Ханин П.Знаток
  • сообщений 2 280
  • на форуме 2 мес

Расскажу, чем закончилось у меня.

Адрес выбирайте по кругу с пропуском тех, что в отказе. Случайный выбор даёт перекос, кому-то достанется втрое больше запросов.

знак участника Пётр Улесов
Пётр УлесовУчастник
  • сообщений 625
  • на форуме 11 мес

До этого работало? Что менялось перед тем, как сломалось?

Какая версия программы и что с настройками по умолчанию?

знак участника Богдан Ярош
Богдан ЯрошУчастник
  • сообщений 990
  • на форуме 7 мес

Сколько адресов и какой темп при этом стоит?

До этого работало? Что менялось перед тем, как сломалось?

знак участника Лунёва А.
Лунёва А.Новичок
  • сообщений 356
  • на форуме 1 года
limit_watch писал: Playwright и прокси: как менять адрес между …

Всё верно написали выше, добавлю от себя пару деталей.

Адрес выбирайте по кругу с пропуском тех, что в отказе. Случайный выбор даёт перекос, кому-то достанется втрое больше запросов.

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)
Ответить в темеПодписаться

Рядом в разделе

Сеометр, форум специалистов по поиску и аналитике ПравилаУчастникиО форумеЛента 2026