打印

[PHP教程] 实时抓取yahoo股票报价的代码

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

<?
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]");
    }
    ?>




TOP

返回顶部
AYBlue

Processed in 0.061721 second(s), 7 queries.

当前时区 GMT+8, 现在时间是 2009-1-8 12:14 京ICP备06054220号

清除 Cookies - 联系我们 - 163K.com - Archiver - WAP