Я получаю рыночные данные от Google Finance и Yahoo Finance, но борюсь с проблемой.
Google Finance
Yahoo Finance
Я испытываю финансы 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.
Я благодарен за любую помощь, которую я могу получить.
<?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 />";}
}
?>
Других решений пока нет …