这是我在网上看到的一个采集新浪国内新闻的采集代码
$order = file_get_contents("http://news.sina.com.cn/china/");
preg_match_all('/<a\s+href=["|\']?([^>"\' ]+)["|\']?\s*[^>]*>([^>]+)<\/a>/i',$order,$arr); 
$url = "";
$reg = "^http://(news)\.(sina)\.(com)\.(cn)\/(.)+\/";
$reg.= "[0-9]{4,}.[0-9]{2,}.[0-9]{2,}";
$reg.= "[0-9]+(\.shtml)";
$loop = 0;
foreach ($arr[1] as $key => $value) {
if(eregi($reg, $value)) {
   $art[$loop]["url"] = $value;
   $art[$loop]["title"] = $arr[2][$key];
   $loop ++ ;
}
}//循环所有新闻
for($i=0; $i<count($art); $i++) {
printf("<a href=\"%s\" target=\"_blank\">%s</a><br />\n", $art[$i]["url"], $art[$i]["title"]);
echo "<br>";
}
整个流程我能分析出来,首先是获取页面内容,然后用正则表达式匹配相应的链接并存为数组,然后循环数组显示标题和链接。但有一个细节我始终没弄明白,他是如何把链接地址和标题剪切出来的。