初级的用php写的采集程序

  作者:bea

可以先用这个采集然后在用帝国处理 <?php #################################################################################### #作者:9elong #网站:个人小站不值一提 #时间:2007-01-01 #声明:仅用于学习php之用。 #功能:采集单页面图片。 #说明:3个示范表单已经写好正则用来示范。没有任何功能说明,一切都在源代码里。附加论坛图片采集正则示范 #########
可以先用这个采集然后在用帝国处理 <?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>


有用  |  无用

猜你喜欢