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

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

Свой чекер адресов на питоне: что проверять обязательно

14 ответов · 5 165 просмотров
знак участника Григорий Сташ
Григорий СташНовичок
  • сообщений 172
  • на форуме 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)
Свой чекер адресов на питоне: что проверять обязательно: разбор в цифрах
Свой чекер адресов на питоне: что проверять обязательно: как это выглядит у меня

Есть у кого рабочая схема?

знак участника Тимофей Бек
Тимофей БекУчастник
  • сообщений 610
  • на форуме 11 мес
полезный ответ
Григорий Сташ писал: Свой чекер адресов на питоне: что проверять …

Замерьте и сравните, догадки тут не помогут.

знак участника Тереза К.
Тереза К.Ветеран
  • сообщений 3 907
  • на форуме 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)
знак участника Тучков
ТучковНовичок
  • сообщений 430
  • на форуме 1 года

На одном проекте это стоило нам сорванного срока.

Проверку ответа делайте до разбора: пустое или короткое лучше отбросить сразу.

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

знак участника Захаров Л.
Захаров Л.Участник
  • сообщений 1 310
  • на форуме 8 мес

Дополню, потому что важная деталь потерялась.

Не держите весь список в памяти на больших объёмах. Читайте потоком, пишите пачками.

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)

Тема на будущее пригодится многим.

знак участника Эдуард Мель
Эдуард МельУчастник
  • сообщений 730
  • на форуме 10 мес

Поправлю цифру, остальное верно.

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

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 330
  • на форуме 8 мес

Поправлю цифру, остальное верно.

Cookie при массовом сборе лучше сбрасывать. Накопленное состояние делает поведение непредсказуемым.

Считайте статистику прямо во время прогона. Узнать о провале в конце восьмичасового прогона обидно.

знак участника Вадим Кучер
Вадим КучерНовичок
  • сообщений 165
  • на форуме 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 025
  • на форуме 7 мес
Григорий Сташ писал: Свой чекер адресов на питоне: что проверять …

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

А что показывают логи в момент падения?

знак участника Ирина Долева
Ирина ДолеваНовичок
  • сообщений 588
  • на форуме 11 мес

У коллеги было то же самое, причина оказалась смешной.

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

знак участника Айгуль Р.
Айгуль Р.Новичок
  • сообщений 440
  • на форуме 1 года

Тот же вывод, только я шёл к нему дольше.

Считайте статистику прямо во время прогона. Узнать о провале в конце восьмичасового прогона обидно.

Такие темы и держат форум.

знак участника Дарья Смолина
Дарья СмолинаУчастник
  • сообщений 820
  • на форуме 9 мес

Согласен с предыдущим ответом, но с одной оговоркой.

Ошибки разделяйте по типам. Отказ по сети и отказ площадки требуют разного поведения.

знак участника Бабенко Д.
Бабенко Д.Новичок
  • сообщений 402
  • на форуме 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)

Тема как раз вовремя, сам этим занят.

знак участника Ерохин
ЕрохинНовичок
  • сообщений 495
  • на форуме 1 года
Григорий Сташ писал: Свой чекер адресов на питоне: что проверять …

Начните с малого объёма и растите постепенно.

знак участника Сергей Птицын
Сергей ПтицынУчастник
  • сообщений 1 165
  • на форуме 6 мес

Что в логах в этот момент?

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

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

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