WEB开发网
开发学院WEB开发PHP 实时抓取YAHOO股票报价的代码 阅读

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

 2001-01-12 16:30:47 来源:WEB开发网   
核心提示:<? function getYahooQuote($stockSymbol = "CCR") { if (!$targetURL) $targetURL = "http://finance.yahoo.com/q?s=$stockSymbol&d=t"; //设定要抓取的
<?
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]");
  }
  ?>


Tags:实时 抓取 YAHOO

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接