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

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

Разбор json ответа, который меняет структуру

10 ответов · 1 569 просмотров
знак участника Емельян Ц.
Емельян Ц.Знаток
  • сообщений 2 130
  • на форуме 3 мес
Код и программные интерфейсы

Спрашиваю совета, потому что вариантов вижу три и все с изъяном.

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

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

знак участника podset
podsetВетеран
  • сообщений 3 480
  • на форуме 1 мес
Емельян Ц. писал: Разбор json ответа, который меняет структуру

Тут есть тонкость, о которой обычно забывают.

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

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

знак участника Ефим Гладков
Ефим ГладковУчастник
  • сообщений 850
  • на форуме 9 мес

Тут легко перепутать два разных момента.

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

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

знак участника Мельник И.
Мельник И.Знаток
  • сообщений 1 655
  • на форуме 3 мес

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

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

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

знак участника logi_i_grafiki
logi_i_grafikiУчастник
  • сообщений 895
  • на форуме 9 мес

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

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

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

знак участника Шамиль Н.
Шамиль Н.Участник
  • сообщений 1 135
  • на форуме 6 мес

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

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

Разбейте прогон на части, станет ровнее.

знак участника proxyled
proxyledЗнаток
  • сообщений 1 620
  • на форуме 6 мес

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

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

знак участника Русакова Е.
Русакова Е.Новичок
  • сообщений 255
  • на форуме 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)
знак участника polnyy_obhod
polnyy_obhodУчастник
  • сообщений 1 450
  • на форуме 5 мес
Емельян Ц. писал: Разбор json ответа, который меняет структуру

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

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

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

знак участника vydacha_live
vydacha_liveЗнаток
  • сообщений 1 975
  • на форуме 4 мес
Емельян Ц. писал: Разбор json ответа, который меняет структуру

Поправлю: дело не в объёме, а в темпе.

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

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

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

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

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