PHP抓取并保存网页所有图片
废话不说,直接上代码
<?php include_once(‘simple_html_dom.php‘); $url = $argv[1]; echo "start fetching images from $url".PHP_EOL.PHP_EOL; $data = loadData($url); $html = str_get_html($data); $images = $html->find(‘img‘); $srcs = array(); foreach ($images as $image) { $src = $image->attr[‘src‘]; saveImg($src); $srcs[] = $src; } echo PHP_EOL.‘finish‘; function loadData($url) { //useragent是为了防止淘宝等公司对脚本访问的限制 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERAGENT, ‘MMozilla/5.0 (Windows NT 6.1; rv:36.0) Gecko/20100101 Firefox/36.0‘); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ch, CURLOPT_TIMEOUT, 5); return curl_exec($ch); } function saveImg($src) { $path = dirname(__FILE__).‘/images/‘.date(‘YmdHis‘).rand(100, 999); $suffix = getSuffix($src); $fileName = $path.‘.‘.$suffix; if (file_put_contents($fileName, file_get_contents($src))) { echo "save $src success".PHP_EOL; } } function getSuffix($src) { $pattern = ‘/.+\.(.+)/‘; preg_match($pattern, $src, $matches); $suffix = $matches[1]; if (!in_array(strtolower($suffix), array(‘jpg‘,‘jpeg‘,‘png‘,‘bmp‘,‘gif‘))) { $suffix = ‘png‘; } return $suffix; } ?>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。