0

Я собрал веб-скребок, который использует это yahoo_finance api. Когда я запускаю программу, чтобы получить ежедневные данные за последние 10 лет, следующее сообщение об ошибке:Python: Yahoo timeout error

YQLQueryError: Query failed with error: "'Results may be truncated because the run exceeded the allowed max response timeout of 30000ms.'"

Эта ошибка появляется иногда в Share.get_historical метода API.

Может ли кто-нибудь дать представление о том, почему это происходит, и о любых возможных средствах, которые я могу исследовать?

+0

Возможно, потому, что ваши вызовы API запрашивают слишком много данных за один снимок. Попробуйте разбить его на меньшие запросы (может быть, каждый год стоит данных). –

ответ

1

Почему это происходит?

Потому что «пробег» превысил 30 секунд, что является пределом, установленным Yahoo. Предположительно, это потому, что вы запрашиваете много исторических данных. Я не думаю, что это тайм-аут запроса, потому что я смог получить исторические данные за 16 лет, которые потребовались> 2 минуты. Возможно, что-то внутреннее для Yahoo.

Возможные лекарственные средства?

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

+0

Знаете ли вы, почему это происходит иногда? У меня есть отметки времени до и после вызова get_historical(), которые показали успешные попытки со временем больше 30 секунд. –

+0

@RayFoo: Всегда ли это происходит для одного и того же запроса? Я не знаю. Я полагаю, это может быть проблемой загрузки в severs Yahoo. Возможно, иногда он слишком занят из-за того, что другие пользователи получают все данные, а в их системе есть внутренний тайм-аут. Но это всего лишь предположение. Вам нужно будет обработать его в своем приложении. – mhawke