初级的用php写的采集程序
php  /  管理员 发布于 7年前   120
可以先用这个采集然后在用帝国处理 while(list($num,$var)=each($imgadd))
####################################################################################
#作者: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]."
";
if(ereg("^.*".$imgbiao.".*$",$img))
{
$img=str_replace($imgbiao,$imgqian.$imgbiao,$img);
preg_match("|http://(.+)jpg|isU",$img,$img);
$imgadd[$n]=$img[0];
//echo "
";
$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."
";
if(ereg("^.*[1-9].*$",$pageurl))
{
$pageurl=str_replace(" $pagekey=str_replace("{关键地址}","(.+)",$_POST['pagekey']);
$pagekey="|".$pagekey."|isU";
preg_match($pagekey,$pageurl,$N3[$i]);
//echo ($N3[$i][0])."
";
getimg($N3[$i][0],$n,$_POST['key'],$_POST['imgqian'],$_POST['imgbiao'],$_POST['titlekey']);
}
}
}
####################################################################################
echo "图片集〖".$title[1]."〗".$n."张图片被抓取
返回首页
";
{
if($_POST['showtype']=="图片")
{
echo "
";
}
else
echo $var."
";
}
####################################################################################
//exit();
}
?>
实例1(信息页有分页,使用了简单的分页正则):
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号