欢迎来到福编程网,本站提供各种互联网专业知识!

抓取YAHOO股票报价的类

发布时间:2009-05-15 作者:作者: 来源:转载
实时抓取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, "
")) 
{ 
$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]
"; 
getYahooQuote("$symbols[$i]"); 
} 
?>


相关推荐