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

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

Работа с cookie при сборе: хранить или сбрасывать

11 ответов · 2 485 просмотров
знак участника zapros_min
zapros_minУчастник
  • сообщений 760
  • на форуме 10 мес
Код и программные интерфейсы

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

По порядку.

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

Правильно ли я вообще ставлю вопрос?

знак участника Шамиль Н.
Шамиль Н.Участник
  • сообщений 1 135
  • на форуме 6 мес
zapros_min писал: Работа с cookie при сборе: хранить или сбрас…

Сколько потоков стоит на прогоне?

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

знак участника Погодин
ПогодинУчастник
  • сообщений 942
  • на форуме 6 мес

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

Тестируйте сборщик на сохранённых страницах. Гонять живую площадку ради отладки расточительно.

Пусть висит, такие вопросы всплывают постоянно.

знак участника proxyled
proxyledЗнаток
  • сообщений 1 620
  • на форуме 6 мес
zapros_min писал: Работа с cookie при сборе: хранить или сбрас…

Смотрите разброс подсетей.

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

Замечание по существу, иначе расчёт поедет.

Состояние прогона храните построчно. Один кусок в конце вас не спасёт. Тогда обрыв на девяностом проценте не стоит вам всего прогона.

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

знак участника polnyy_obhod
polnyy_obhodУчастник
  • сообщений 1 450
  • на форуме 5 мес

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

знак участника vydacha_live
vydacha_liveЗнаток
  • сообщений 1 975
  • на форуме 4 мес
zapros_min писал: Работа с cookie при сборе: хранить или сбрас…

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

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

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)
знак участника Ольга Мятлева
Ольга МятлеваУчастник
  • сообщений 700
  • на форуме 10 мес

У нас это вылезло на проекте с большим каталогом.

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

Забрал себе в заметки.

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

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

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

Не совсем так, и разница тут существенная.

Состояние прогона храните построчно. Один кусок в конце вас не спасёт. Тогда обрыв на девяностом проценте не стоит вам всего прогона.

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

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

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

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

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

Похоже на правду, у меня цифры близкие.

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

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

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

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