Posted in PHP onMay 15, 2009
<? 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]"); } ?>
抓取YAHOO股票报价的类
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@