之前一直使用phpcms自带的采集功能,只需要写下采集规则即可,现在需求改变,需要一些自定义的东西,需要整合到thinkphp里面,所以从头开始搞这个,花了点时间,参考了下网上的教程,php代码
<?php
function SaveImg($url){
$imgurl = file_get_contents($url);
$start = strpos($imgurl, "<div class=\"con-desc\">");
$end = strpos( $imgurl, "<div class=\"mt14 conWrapAd\">");
$length = $end - $start;
$item = substr($imgurl, $start, $length);
$reg_tag = '/<img.*?\"([^\"]*(jpg|bmp|jpeg|gif)).*?>/';
preg_match_all($reg_tag, $item, $imgurl);
$img = $imgurl[1][0];
return $img;
}
function GrabImage($url, $filename = "") {
if ($url == ""){
return false;
}
if ($filename == "") {
//如果没有指定新的文件名
$ext = strrchr($url, ".");
//得到$url的图片格式
if ($ext != ".gif" && $ext != ".jpg"){
return false;
}else{
$filename = date("Ymdhis").$ext;
}
}
ob_start();//打开输出
readfile($url);//输出图片文件
$img = ob_get_contents();//得到浏览器输出
ob_end_clean();//清除输出并关闭
$size = strlen($img);//得到图片大小
$fp2 = @fopen("img/".$filename, "a");
fwrite($fp2, $img);//向当前目录写入图片文件,并重新命名
fclose($fp2);
return $filename;//返回新的文件名
}
if($_POST['sub']){
foreach ($_POST['url'] as $k => $v) {
$img = GrabImage(SaveImg($v), "");
if($img){
echo "采集成功,图片已保存,文件名字为".$img."<br />";
}else{
echo "采集失败!<br />";
}
sleep(1);
}
}
?>html代码
<div class="list"> <form action="" method="post"> <input type="text" name="pagenum" id="pagenum" value="" /> <input type="button" name="generate" id="generate" value="生成列表" /> <input type="submit" name="sub" id="btn" value="下载远程图片" /><br /> <input type="text" name="url[]" id="url" value="" /> </form> </div>
js代码
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$("#generate").click(function(){
var num = $("#pagenum").val();
var arr = $("#url").val().split(".html");
for (var i = 2; i <= num; i++) {
$("#url").before('<input type="text" name="url[]" id="url" value="'+ arr[0] + '_'+ i +'.html" /><br />');
}
});
})
</script>简单样式表
*{padding:0;border:0;margin:0;}
html body{font-size:12px;color:#999;}
a,a:hover{text-decoration:none;}
.list{padding:5px;overflow:hidden;}
input{width:400px;height:30px;padding-left:5px;line-height:30px;border:1px solid #ddd;margin:5px;border-radius:5px;}
#pagenum,#generate,#btn{width:120px;}一个简单的表单提交网站页面地址,从页面抓取图片然后保存到本地!
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://sulao.cn/post/397
评论列表