可以先用這個採集然後在用帝國處理
<?php
####################################################################################
#作者:9elong
#網站:個人小站不值一提
#時間:2007-01-01
#聲明:僅用於學習php之用。
#功能:採集單頁面圖片。
#說明:3個示範表單已經寫好正則用來示範。沒有任何功能說明,一切都在原始碼裡。附加論壇圖片採集正則示範
####################################################################################
//把圖片從資訊頁抓取下來的函數
function getimg($url,$n,$key,$imgqian,$imgbiao,$titlekey)
{
//$key圖片地址正則
//$titlekey圖片標題正則
//$imgqian圖片地址首碼
//$imgbiao圖片地址特殊標識
global $n;
global $msg;
global $result;
global $imgadd;
global $title;
$msg=file_get_contents($url);
$key=str_replace("{圖片地址}","(.+)",$key);
$key="|".$key."|isU";
preg_match_all($key,$msg,$result);
$c=count($result[0]);
for($i=0;$i<$c;$i++)
{
$img=$result[0][$i]."<br>";
if(ereg("^.*".$imgbiao.".*$",$img))
{
$img=str_replace($imgbiao,$imgqian.$imgbiao,$img);
preg_match("|http://(.+)jpg|isU",$img,$img);
$imgadd[$n]=$img[0];
//echo "<img src=".($img[0])."><br>";
$n++;
}
elseif(ereg("^.*jpg.*$",$img))
{
preg_match("|http://(.+)jpg|isU",$img,$img);
$imgadd[$n]=$img[0];
if($img[0]!="")
$n++;
}
unset($img);
}
$titlekey=str_replace("{圖片標題}","(.+)",$titlekey);
$titlekey="|".$titlekey."|isU";
preg_match($titlekey,$msg,$title);
//echo $title[0];
return $title;
return $msg;
return $result;
return $n;
return $imgadd;
}
####################################################################################
#不支援file_get_contents()函數可以使用下面的替換
#$i=0;
#$handle=@fopen($url,"rb");
#while (!@feof($handle))
#{
# $buffer[$i]= @fgets($handle, 4096);
# $i++;
#}
#fclose($handle);
#$msg=join("",$buffer);
####################################################################################
if($_GET['act']=="getimgadd"&&$_POST['url']!="")
{
$url=$_POST['url'];
getimg($url,"0",$_POST['key'],$_POST['imgqian'],$_POST['imgbiao'],$_POST['titlekey']);
####################################################################################
//擷取分頁
if($_POST['getpage']=="是")
{
$_POST['page']=str_replace("{分頁地址}","(.+)",$_POST['page']);
$page="|".$_POST['page']."|isU";
//echo $page;
preg_match_all($page,$msg,$presult);
if($_POST['pc']==""||$_POST['pc']=="全部")
$pc=count($presult[0]);
else
$pc=$_POST['pc'];
if($_POST['pc']>count($presult[0]))
$pc=count($presult[0]);
for($i=1;$i<$pc;$i++)
{
$pageurl=$presult[0][$i];
//echo $pageurl."<br>";
if(ereg("^.*[1-9].*$",$pageurl))
{
$pageurl=str_replace("<a href="","<a href="".$_POST['imgqian'],$pageurl);
$pagekey=str_replace("{關鍵地址}","(.+)",$_POST['pagekey']);
$pagekey="|".$pagekey."|isU";
preg_match($pagekey,$pageurl,$N3[$i]);
//echo ($N3[$i][0])."<br>";
getimg($N3[$i][0],$n,$_POST['key'],$_POST['imgqian'],$_POST['imgbiao'],$_POST['titlekey']);
}
}
}
####################################################################################
echo "圖片集〖".$title[1]."〗".$n."張圖片被抓取<br><a href='?act='>返回首頁</a><br>";
while(list($num,$var)=each($imgadd))
{
if($_POST['showtype']=="圖片")
{
echo "<img src='".$var."'><br>";
}
else
echo $var."<br>";
}
####################################################################################
//exit();
}
?>
執行個體1(資訊頁有分頁,使用了簡單的分頁正則):
<FORM METHOD=POST ACTION="?act=getimgadd">
輸入圖片地址<INPUT TYPE="text" NAME="url" size=80 value='http://www.pp132.com/n835c17.shtml'><br>
圖片地址正則<INPUT TYPE="text" NAME="key" size=80 value='<img{圖片地址}>'><br>
圖片地址首碼<INPUT TYPE="text" NAME="imgqian" size=80 value='http://www.pp132.com/'><br>
圖片地址標識<INPUT TYPE="text" NAME="imgbiao" size=80 value='upload'><br>
圖片標題正則<INPUT TYPE="text" NAME="titlekey" size=80 value='<H1 class=aTitle>{圖片標題}</H1></DIV>'><br>
分頁地址正則<INPUT TYPE="text" NAME="page" size=80 value='<a href="{分頁地址}shtml">.[0-9]'><br>
分頁地址模式<INPUT TYPE="text" NAME="pagekey" size=80 value='http://{關鍵地址}shtml'><br>
<SELECT NAME="getpage">
<option value="是" selected="selected">擷取分頁資訊</option>
<option value="否">不要分頁資訊</option>
</SELECT><br>
<SELECT NAME="pc">
<option value="1" selected="selected">擷取1頁</option>
<option value="2">擷取2頁</option>
<option value="3">擷取3頁</option>
<option value="4">擷取4頁</option>
<option value="5">擷取5頁</option>
<option value="全部">擷取全部</option>
</SELECT><br>
<SELECT NAME="showtype">
<option value="圖片" selected="selected">直接顯示圖片</option>
<option value="文字">直接顯示地址</option>
</SELECT><br>
<INPUT TYPE="submit">
</FORM><br>
執行個體2(資訊頁沒有分頁,所以分頁正則為空白):
<FORM METHOD=POST ACTION="?act=getimgadd">
輸入圖片地址<INPUT TYPE="text" NAME="url" size=80 value='http://zy.muwen.com/pic/89/2007/01/01/131721.htm'><br>
圖片地址正則<INPUT TYPE="text" NAME="key" size=80 value='<IMG src="/UpLoad{圖片地址}jpg"'><br>
圖片地址首碼<INPUT TYPE="text" NAME="imgqian" size=80 value='http://zy.muwen.com/'><br>
圖片地址標識<INPUT TYPE="text" NAME="imgbiao" size=80 value='UpLoad'><br>
圖片標題正則<INPUT TYPE="text" NAME="titlekey" size=80 value='<span id="_ctl0_TitleLabel" class="Title">{圖片標題}</span></TD>'><br>
分頁地址正則<INPUT TYPE="text" NAME="page" size=80 value=''><br>
分頁地址模式<INPUT TYPE="text" NAME="pagekey" size=80 value=''><br>
<SELECT NAME="getpage">
<option value="是">擷取分頁資訊</option>
<option value="否" selected="selected">不要分頁資訊</option>
</SELECT><br>
<SELECT NAME="pc">
<option value="1" selected="selected">擷取1頁</option>
<option value="2">擷取2頁</option>
<option value="3">擷取3頁</option>
<option value="4">擷取4頁</option>
<option value="5">擷取5頁</option>
<option value="全部">擷取全部</option>
</SELECT><br>
<SELECT NAME="showtype">
<option value="圖片" selected="selected">直接顯示圖片</option>
<option value="文字">直接顯示地址</option>
</SELECT><br>
<INPUT TYPE="submit">
</FORM><br>
執行個體3(資訊頁沒有分頁,所以分頁正則為空白,圖片為絕對位址,所以圖片地址首碼為空白):
<FORM METHOD=POST ACTION="?act=getimgadd">
輸入圖片地址<INPUT TYPE="text" NAME="url" size=80 value='http://www.6642.com/Disp/9936.htm'><br>
圖片地址正則<INPUT TYPE="text" NAME="key" size=80 value='<P><IMG{圖片地址}"></P>'><br>
圖片地址首碼<INPUT TYPE="text" NAME="imgqian" size=80 value=''><br>
圖片地址標識<INPUT TYPE="text" NAME="imgbiao" size=80 value='UpLoad'><br>
圖片標題正則<INPUT TYPE="text" NAME="titlekey" size=80 value='<div align="right"><b>{圖片標題}</b></div></td>'><br>
分頁地址正則<INPUT TYPE="text" NAME="page" size=80 value=''><br>
分頁地址模式<INPUT TYPE="text" NAME="pagekey" size=80 value=''><br>
<SELECT NAME="getpage">
<option value="是">擷取分頁資訊</option>
<option value="否" selected="selected">不要分頁資訊</option>
</SELECT><br>
<SELECT NAME="pc">
<option value="1" selected="selected">擷取1頁</option>
<option value="2">擷取2頁</option>
<option value="3">擷取3頁</option>
<option value="4">擷取4頁</option>
<option value="5">擷取5頁</option>
<option value="全部">擷取全部</option>
</SELECT><br>
<SELECT NAME="showtype">
<option value="圖片" selected="selected">直接顯示圖片</option>
<option value="文字">直接顯示地址</option>
</SELECT><br>
<INPUT TYPE="submit">
</FORM><br>
華聲論壇圖片為附件http://bbs.hnol.net/dispbbs2.asp?boardID=50&ID=336436
圖片地址正則:upload=jpg{圖片地址}upload
圖片地址標識:bbs
圖片標題正則:文章主題</B>:{圖片標題}</th>
華聲論壇圖片為外鏈http://bbs.hnol.net/dispbbs2.asp?boardID=50&ID=336253
圖片地址正則:img]{圖片地址}/img
圖片地址標識:jpg
圖片標題正則:文章主題</B>:{圖片標題}</th>