У финансов Yahoo есть верхний предел запроса данных. Есть ли альтернатива или обходной путь?
Привет! Я просканировал этот сайт и Google на предмет последних обновлений по загрузке информации о запасах из Yahoo Finance. У меня не было большого успеха. Когда я тестировал свое приложение, я обнаружил исключение для сервера 404, используя следующий фрагмент кода C#:
string urlTemplate =
@"http://ichart.finance.yahoo.com/table.csv?s=[symbol]&a=" +
"[startMonth]&b=[startDay]&c=[startYear]&d=[endMonth]&e=" +
"[endDay]&f=[endYear]&g=d&ignore=.csv";
...
WebClient wc = new WebClient();
try
{
history = wc.DownloadString(urlTemplate);
}
Знаете ли вы, если недавно в Yahoo (или всегда) было какое-то обновление о том, сколько вы можете запросить с финансового сервера Yahoo? Если так, кто-нибудь знает верхний предел или порог? Это со временем или максимальное количество ежедневных запросов? Я думал о том, чтобы поставить случайный запрос на сон до 2 минут, чтобы получить это. Я не думаю, что это поможет. Есть ли альтернативы, которые позволили бы мне постоянно делать запросы в Yahoo Finance? Я думал, что у Yahoo есть какая-то служба подписки, которую вы можете использовать именно для этой цели. Я ничего не могу найти по этому поводу. Если с Yahoo нет ничего плохого, есть ли у кого-нибудь рекомендации о доступных альтернативных услугах или услугах подачи данных?
2 ответа
См. Страницу информации об ограничениях и использовании языка запросов Yahoo. Это для всех API-интерфейсов YQL, а не только для финансового API.
YQL Rate Limits:
Что это значит:
- Используя публичный API (без аутентификации), вы ограничены 2000 запросов в час на IP (или до 48000 запросов в день).
- Используя Частный API (с проверкой подлинности OAuth с использованием ключа API), вы ограничены 20 000 запросов в час на IP и ограничены 100 000 запросов в день на API ключ.
Что касается реализации, если вы хотите использовать Yahoo Finance API, то вы должны придерживаться их требования. Создайте систему, которая делает только количество запросов, которые они позволяют предотвратить ошибки. Вы можете сделать это с базой данных (в случае, если ее использует более одного клиента сценария / приложения) и использовать потоки / задания (jobs= опрос), чтобы дождаться, когда она сможет сделать больше запросов. Получите ключ API, чтобы расширить свой лимит. Получить несколько ключей API, чтобы расширить его еще больше.
Что касается альтернативы, их слишком много, чтобы сосчитать. Я использовал только API Yahoo и Google. Yahoo - мой предпочтительный вариант, но я не нашел бесплатной альтернативы, сравнимой. Испытай свою удачу и дай мне знать, если найдешь такую!
Они никогда не говорили, какой был предел. Я имел обыкновение обновлять что-то около 6000 акций ежедневно, это работало. На некоторых других страницах ограничение кажется намного выше, но на исторических ценах акций они блокируются в какой-то момент.
Кстати, иногда сервер Yahoo возвращает недокументированный код HTTP 999, который я интерпретирую как "слишком много запросов".
Если вам нужны только данные на конец дня, то, возможно, вы можете попробовать это: http://www.eoddata.com/products/default.aspx(я никогда не пробовал сам)
Конечно, есть платные подписки на более частые данные.