初级的用php写的采集程序

时间:2021-05-25

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

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章