实时抓取YAHOO股票报价的代码

6年以前  |  阅读数:1038 次  |  编程语言:PHP 

<?
function getYahooQuote($stockSymbol = "CCR")
{
if (!$targetURL) $targetURL = "http://finance.yahoo.com/q?s=$stockSymbol&d;=t"; //设定要抓取的URL目标
$fd = fopen("$targetURL", "r");
$stopExtract = 0;
$startExtract = 0;
while (!feof($fd))
{
$buffer = fgets($fd, 4096);
//echo trim($buffer)."\n";
if (strstr($buffer, "rowspan=3"))
{
//echo "extract started at line #$lineCount\n";
$startExtract = 1;
}
if ($startExtract && !$stopExtract)
{

            if (strstr($buffer, "<a"))    
            {   
                $startPos = strrpos($buffer, "<");   
                $buffer = substr($buffer, $startPos);   
            }   
            //$text = trim(strip_tags($buffer));   
            //echo trim($buffer)."\n";    

            $buffer = str_replace("\n\r", " ", "$buffer");   
            if (strstr($buffer, "http://ichart.yahoo.com/v?s=$stockSymbol"))    
            {   
                //echo "ichart found!";   
                $stopExtract = 1;    
            }   
            $capturedHTML .= $buffer;       

        }   
        if ($startExtract && strstr($buffer, "<br>"))   
        {   
             $stopExtract = 1;    
            //echo "extract stopped at line #$lineCount\n";            
            echo $capturedHTML;   
            break;   
        }   
        $lineCount++;   
    }   
    fclose($fd);   
}   

//以下为抓取的一个例子   
$symbols = array('CCR', 'IIXL','SAPE','WBVN' );   
$symbolCount = count($symbols);   
for ($i=0; $i< $symbolCount; $i++)   
{   
    echo "$symbols[$i]<br>";   
    getYahooQuote("$symbols[$i]");   
}   
?>   

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8