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

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

curl proxy environment variables в скриптах на сервере

7 ответов · 3 536 просмотров
знак участника Ефим Гладков
Ефим ГладковУчастник
  • сообщений 850
  • на форуме 9 мес
Код и программные интерфейсыгорячая

Пишу свой сборщик, и на этом месте встал.

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

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)
curl proxy environment variables в скриптах на сервере: разбор в цифрах
curl proxy environment variables в скриптах на сервере: как это выглядит у меня

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

знак участника Ростислав Е.
Ростислав Е.Участник
  • сообщений 965
  • на форуме 7 мес
Ефим Гладков писал: curl proxy environment variables в скриптах …

Держите запас, ровно по расчёту работать не выйдет.

знак участника tochka_zamera
tochka_zameraВетеран
  • сообщений 3 355
  • на форуме 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)
знак участника Виктор Лаптев
Виктор ЛаптевНовичок
  • сообщений 230
  • на форуме 1 года
Ефим Гладков писал: curl proxy environment variables в скриптах …

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

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

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

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

Проверял это на своей задаче, вывод такой же.

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

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

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

Полгода назад ловил то же самое.

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

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

знак участника Маргарита Ю.
Маргарита Ю.Участник
  • сообщений 640
  • на форуме 11 мес

Полгода назад ловил то же самое.

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

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

Хороший разбор, добавлю в закладки.

знак участника tempo_ru
tempo_ruЗнаток
  • сообщений 2 470
  • на форуме 3 мес
Ефим Гладков писал: curl proxy environment variables в скриптах …

Считайте по темпу, всё остальное вторично.

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

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

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