学院首页>网络编程>PHP>实时抓取YAHOO股票报价的代码

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

作者: 来源:不详 添加时间:2006-5-25 20:40:48
  <?
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]");
 }
 ?>


 
站内搜索