初级的用php写的采集程序
初级的用php写的采集程序
发布时间:2016-12-29 来源:查字典编辑
摘要:可以先用这个采集然后在用帝国处理

可以先用这个采集然后在用帝国处理

<?php

####################################################################################

#作者:9elong

#网站:个人小站不值一提

#时间:2007-01-01

#声明:仅用于学习php之用。

#功能:采集单页面图片。

#说明:3个示范表单已经写好正则用来示范。没有任何功能说明,一切都在源代码里。附加论坛图片采集正则示范

####################################################################################

//把图片从信息页抓取下来的函数

functiongetimg($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"<imgsrc=".($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("<ahref="","<ahref="".$_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><ahref='?act='>返回首页</a><br>";

while(list($num,$var)=each($imgadd))

{

if($_POST['showtype']=="图片")

{

echo"<imgsrc='".$var."'><br>";

}

else

echo$var."<br>";

}

####################################################################################

//exit();

}

?>

实例1(信息页有分页,使用了简单的分页正则):

<FORMMETHOD=POSTACTION="?act=getimgadd">

输入图片地址<INPUTTYPE="text"NAME="url"size=80value='http://www.pp132.com/n835c17.shtml'><br>

图片地址正则<INPUTTYPE="text"NAME="key"size=80value='<img{图片地址}>'><br>

图片地址前缀<INPUTTYPE="text"NAME="imgqian"size=80value='http://www.pp132.com/'><br>

图片地址标识<INPUTTYPE="text"NAME="imgbiao"size=80value='upload'><br>

图片标题正则<INPUTTYPE="text"NAME="titlekey"size=80value='<H1class=aTitle>{图片标题}</H1></DIV>'><br>

分页地址正则<INPUTTYPE="text"NAME="page"size=80value='<ahref="{分页地址}shtml">.[0-9]'><br>

分页地址模式<INPUTTYPE="text"NAME="pagekey"size=80value='http://{关键地址}shtml'><br>

<SELECTNAME="getpage">

<optionvalue="是"selected="selected">获取分页信息</option>

<optionvalue="否">不要分页信息</option>

</SELECT><br>

<SELECTNAME="pc">

<optionvalue="1"selected="selected">获取1页</option>

<optionvalue="2">获取2页</option>

<optionvalue="3">获取3页</option>

<optionvalue="4">获取4页</option>

<optionvalue="5">获取5页</option>

<optionvalue="全部">获取全部</option>

</SELECT><br>

<SELECTNAME="showtype">

<optionvalue="图片"selected="selected">直接显示图片</option>

<optionvalue="文字">直接显示地址</option>

</SELECT><br>

<INPUTTYPE="submit">

</FORM><br>

实例2(信息页没有分页,所以分页正则为空):

<FORMMETHOD=POSTACTION="?act=getimgadd">

输入图片地址<INPUTTYPE="text"NAME="url"size=80value='http://zy.muwen.com/pic/89/2007/01/01/131721.htm'><br>

图片地址正则<INPUTTYPE="text"NAME="key"size=80value='<IMGsrc="/UpLoad{图片地址}jpg"'><br>

图片地址前缀<INPUTTYPE="text"NAME="imgqian"size=80value='http://zy.muwen.com/'><br>

图片地址标识<INPUTTYPE="text"NAME="imgbiao"size=80value='UpLoad'><br>

图片标题正则<INPUTTYPE="text"NAME="titlekey"size=80value='<spanid="_ctl0_TitleLabel"class="Title">{图片标题}</span></TD>'><br>

分页地址正则<INPUTTYPE="text"NAME="page"size=80value=''><br>

分页地址模式<INPUTTYPE="text"NAME="pagekey"size=80value=''><br>

<SELECTNAME="getpage">

<optionvalue="是">获取分页信息</option>

<optionvalue="否"selected="selected">不要分页信息</option>

</SELECT><br>

<SELECTNAME="pc">

<optionvalue="1"selected="selected">获取1页</option>

<optionvalue="2">获取2页</option>

<optionvalue="3">获取3页</option>

<optionvalue="4">获取4页</option>

<optionvalue="5">获取5页</option>

<optionvalue="全部">获取全部</option>

</SELECT><br>

<SELECTNAME="showtype">

<optionvalue="图片"selected="selected">直接显示图片</option>

<optionvalue="文字">直接显示地址</option>

</SELECT><br>

<INPUTTYPE="submit">

</FORM><br>

实例3(信息页没有分页,所以分页正则为空,图片为绝对地址,所以图片地址前缀为空):

<FORMMETHOD=POSTACTION="?act=getimgadd">

输入图片地址<INPUTTYPE="text"NAME="url"size=80value='http://www.6642.com/Disp/9936.htm'><br>

图片地址正则<INPUTTYPE="text"NAME="key"size=80value='<P><IMG{图片地址}"></P>'><br>

图片地址前缀<INPUTTYPE="text"NAME="imgqian"size=80value=''><br>

图片地址标识<INPUTTYPE="text"NAME="imgbiao"size=80value='UpLoad'><br>

图片标题正则<INPUTTYPE="text"NAME="titlekey"size=80value='<divalign="right"><b>{图片标题}</b></div></td>'><br>

分页地址正则<INPUTTYPE="text"NAME="page"size=80value=''><br>

分页地址模式<INPUTTYPE="text"NAME="pagekey"size=80value=''><br>

<SELECTNAME="getpage">

<optionvalue="是">获取分页信息</option>

<optionvalue="否"selected="selected">不要分页信息</option>

</SELECT><br>

<SELECTNAME="pc">

<optionvalue="1"selected="selected">获取1页</option>

<optionvalue="2">获取2页</option>

<optionvalue="3">获取3页</option>

<optionvalue="4">获取4页</option>

<optionvalue="5">获取5页</option>

<optionvalue="全部">获取全部</option>

</SELECT><br>

<SELECTNAME="showtype">

<optionvalue="图片"selected="selected">直接显示图片</option>

<optionvalue="文字">直接显示地址</option>

</SELECT><br>

<INPUTTYPE="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>

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新php教程学习
热门php教程学习
编程开发子分类