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

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

Пул адресов в коде: как выбирать следующий адрес

11 ответов · 922 просмотров
знак участника proxyled
proxyledЗнаток
  • сообщений 1 620
  • на форуме 6 мес
Код и программные интерфейсы

Ниже кусок кода и описание того, что получается.

Вводные, чтобы не гадать.

Результаты пишу пачками по тысяче строк. Питон, асинхронный сбор, одновременно держу около двухсот задач.

Подскажите, где я ошибаюсь.

держу два поставщика, чтобы спать
знак участника Светлана Бор
Светлана БорНовичок
  • сообщений 205
  • на форуме 1 года
proxyled писал: Пул адресов в коде: как выбирать следующий а…

Тут ничего нового не скажу, только подтвержу.

Разбор ответа держите отдельно от сбора. Тогда смена разметки не требует перегонять данные заново, достаточно перечитать сохранённое.

знак участника prosmotr_logov
prosmotr_logovВетеран
  • сообщений 3 040
  • на форуме 1 мес

Проверьте, что настройка вообще применилась.

знак участника Останин
ОстанинУчастник
  • сообщений 1 105
  • на форуме 6 мес

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

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

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)
знак участника Астахов
АстаховУчастник
  • сообщений 1 150
  • на форуме 6 мес

Проверьте, что настройка вообще применилась.

знак участника sbor_i_svod
sbor_i_svodЗнаток
  • сообщений 1 520
  • на форуме 5 мес

У меня картина совпадает почти полностью.

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

Отпишитесь, чем закончится, тема полезная.

знак участника Ким Р.
Ким Р.Новичок
  • сообщений 214
  • на форуме 1 года
proxyled писал: Пул адресов в коде: как выбирать следующий а…

Был случай, когда всё сошлось только на третий день разбора.

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

Держите нас в курсе.

знак участника Данилов К.
Данилов К.Участник
  • сообщений 1 245
  • на форуме 8 мес

Осторожнее с этим выводом, он верен не всегда.

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

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

знак участника retry_backoff
retry_backoffЗнаток
  • сообщений 2 710
  • на форуме 2 мес

У нас на прошлом проекте это выглядело так.

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

знак участника Барсов
БарсовУчастник
  • сообщений 1 420
  • на форуме 8 мес
proxyled писал: Пул адресов в коде: как выбирать следующий а…

Это на всех площадках или на одной?

На другой машине воспроизводится?

знак участника Валерия Гонт
Валерия ГонтНовичок
  • сообщений 268
  • на форуме 1 года

Одно уточнение, иначе расчёт уедет.

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

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)
знак участника Кравчук
КравчукЗнаток
  • сообщений 1 840
  • на форуме 4 мес

Логи в помощь, без них это гадание.

Ответить в темеПодписаться

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

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