美女图片爬虫

在网上发现某个很不错图片分享网站。 日本的一个网站。里面是来自网友收集的美女图片。有收藏的欲望。分析了它的页面源代码 相对简单。用PHP写了一个爬虫小偷脚本。用脚本模式执行php文件还是我第一次做。昨晚开了一晚上 早上一过来,不错 快2w张照片都下载完毕。写了个批处理。封装了cmd命令。以后可以用相同思路去爬其他网站。

需要打开php的curl扩展支持。在php.exe所在文件夹下的php.ini里去掉curl扩展前的分号即可(当以脚本模式cls执行php文件时 。同文件夹下php.ini有效)

运行的话进入cmd 输入命令: php的path/php.exe 本文件路径 开始页 页数

例如我的 e:/phpshell/php.exe catch.php 1 50

基本代码如下。。

$links){
process($matches[1][$key]); //处理每张图片
}
}

//读取页面的源代码

function opena($page){
global $baseurl;
$url = $baseurl."?page=".$page;
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_REFERER, $baseurl);
curl_setopt ($ch, CURLOPT_USERAGENT, ‘Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)’);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 30);
$file_contents = curl_exec($ch);
echo "
=========Page ".$page. " 已加载===========
";
return $file_contents;
}

function process($query) {
global $baseurl,$path,$imgurl;
$pic = $query;
$basedir = $path.$pic{0};
$url = $imgurl.$pic.".jpg";
$fname= $basedir."/".$pic.".jpg";

if(file_exists($fname)){
echo "{$query} 已存在…
";
return;
}else{
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_REFERER, $baseurl);
curl_setopt ($ch, CURLOPT_USERAGENT, ‘Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)’);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 30);
$file_contents = curl_exec($ch);
curl_close($ch);
//header("Content-type:image/jpeg");
//echo $file_contents;
if(!is_dir($basedir)){
mkdir($basedir,0777,true);
}
$fp=fopen($fname,’w');
if($fp){
fwrite($fp,$file_contents);
fclose($fp);
echo "{$query} 下载完成..
";
return;
}else{
echo "{$query} 下载失败..
";
}
}

}
?>

发表评论

返回顶部