Sziasztok!
Egy kisebb saját használatra szolgáló programot fejlesztgetek, amelyhez pár adat kellene a Yahoo Finance oldalról.
Régebben volt egy API a Yahoon, amelynek támogatását megszüntették, fizetős szolgáltatót pedig nem szeretnék használni.
Például az Apple fundamentális adatai az oldalon:
h**ps://finance.yahoo.com/quote/AAPL/key-statistics?p=AAPL
Az alábbi adatokat szeretném kinyerni az oldalról: Price/Sales (ttm), Shares Outstanding, Held by Institutions , Diluted EPS (ttm).
(Az se baj ha az összes adat lejön egyszerre innen).
Egy korábbi hozzászólás alapján a PHP Simple HTML DOM Parser (h**p://simplehtmldom.sourceforge.net/) használatát próbáltam, de nem igazán sikerült még átlátnom.
Az a probléma, hogy a Yahoo oldala eléggé bonyolult (legalábbis számomra), mivel táblázatos formában jeleníti meg az adatokat más szolgáltatótól beillesztve.
Találtam már rá egy bejegyzést, valaki szintén ezzel a problémával küzdött, neki egy CURL-os + PHP Simple HTML DOM Parser kombinációt ajánlottak.
Abban kérném a segítségeteket, hogy milyen módon tudom a két szkript használatával a fent írt 4 féle adatot (vagy az összeset) kiszedni a Yahoo oldalról?
A fájl csatolás oldalon nem tudtam feltölteni a php fájlt, mert nem működött...
Ezért alább bemásoltam a cURL-es szkriptet.
Előre is köszönöm a segítséget!
A cURL szkript:
<?php
include('simple_html_dom.php');
$search_url = 'https://finance.yahoo.com/quote/AAPL/key-statistics?p=AAPL';
function bCurl($url) {
$cookie_file = "cookie1.txt";
$header = array();
$header[] = 'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5';
$header[] = 'Cache-Control: max-age=0';
$header[] = 'Connection: keep-alive';
$header[] = 'Keep-Alive: 300';
$header[] = 'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7';
$header[] = 'Accept-Language: en-us,en;q=0.5';
$header[] = 'Pragma: ';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11 (.NET CLR 3.5.30729)');
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($ch, CURLOPT_ENCODING, '');
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
$result = curl_exec($ch);
curl_close ($ch);
return $result;
}
$result = bCurl($search_url);
$html = new simple_html_dom();
$html->load($result);
$keywords = $html->find("meta[name=keywords]",0)->getAttribute('content');
print_r($keywords);
?>
Könyvjelzők