可以先用这个采集然后在用帝国处理
<?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>