Использование file_get_contents () / cURL или API для получения финансовых данных?

Я получаю рыночные данные от Google Finance и Yahoo Finance, но борюсь с проблемой.

Google Finance

http://www.google.com/finance/info?q=NASDAQ:GOOG

Yahoo Finance

http://query.yahooapis.com/v1/public/yql?q=select%20LastTradePriceOnly%20from%20yahoo.finance.quotes%20where%20symbol%20in%20%28%22GOOG%22%29%0A%09% 09&ENV = HTTP% 3A% 2F% 2Fdatatables.org% 2Falltables.env&Формат = JSON

Я испытываю финансы Yahoo как ненадежный. Если я проверю акции прямо на веб-сайте Yahoo Finance, я получу правильную цену, но как только я воспользуюсь ссылкой выше, я получу другую цену. Я сравнил данные JSON для Google и Yahoo Finance. Google Finance гораздо точнее, но я хочу использовать Yahoo Finance, поскольку у них гораздо больше акций, которые можно получить. Я проверил акции Google (GOOG) через «API» Yahoo Finance примерно за 30 минут до закрытия пометки. Это показывало неправильную цену как 2 доллара. Сайт показал правильную цену, но не «API». Но и мой скрипт Google Finance, и веб-сайт показывали правильную цену. Кто-нибудь знает, как это можно решить? Кто-нибудь работал с Yahoo Finance «API» раньше?

Щас пользуюсь file_get_contents() с RegEx, чтобы получить <span> с обоих сайтов. Этот метод работает довольно хорошо и быстро, но я хочу перейти на использование cURL, так как он быстрее. Я создал веб-сайт, который извлекает данные, и это занимает всего 1 секунду.

Вот часть моего текущего кода:

$data = file_get_contents('http://www.google.com/finance?q=NASDAQ:GOOG');
$stock = '/\<span id\=\"ref_4420283_l\"\>(.*?)\<\/span\>/';
$price = htmlspecialchars(strip_tags($stock [0]));

Если я придерживаюсь приведенного выше кода, есть ли шанс, что Google или Yahoo заблокирует соединение? Потому что этот код загружает весь сайт, а не только данные JSON. Мне просто нужно ограничить цену.

Резюме

Я сейчас пользуюсь file_get_contents() но нужно перейти на cURL, если мне нужно придерживаться этого метода. Я собираюсь использовать данные JSON из Yahoo Finance по ссылке выше, но данные JSON не являются точными. Данные JSON от Google Finance совершенно точны, но у Google не все акции, как у Yahoo Finance.

У кого-нибудь была такая же проблема с Yahoo Finance? Есть ли шанс, что Google или Yahoo заблокируют мое соединение, если я решу придерживаться file_get_contents() или курл. Это связано с тем, что данные на сайте точны как для Google, так и для Yahoo Finance, но не для данных JSON от Yahoo.

Я благодарен за любую помощь, которую я могу получить.

-1

Решение

<?PHP
$url = "http://www.google.com/finance?q=NASDAQ:GOOG";
$input = @file_get_contents($url) or die("Could not access file: $url");
$regexp = '<span id=\"ref_(.*)\">(.*)<\/span>';
if(preg_match_all("/$regexp/siU", $input, $matches, PREG_SET_ORDER)) {
foreach($matches as $match) {

echo $match[2].","."<br />";}
}

?>
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]