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

5年以前  |  阅读数:925 次  |  编程语言: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]");   
}   
?>   
 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例