A-A+
利用QueryList多线程插件批量下载太平洋电脑网壁纸,涉及到采集gzip页面,很容易被当作乱码
PHP采集,演示QueryList3.0多线程插件使用技巧,多线程批量采集页面同时批量下载图片;以及采集gzip页面,gzip页面很容易被误以为是乱码,实际上是经过压缩过的页面,解压后即可看到原网页内容。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <?php require '/QueryList/QueryList.class.php'; $urls = array(); for ($i=1; $i <= 20; $i++) { $url = "http://wallpaper.pconline.com.cn/pic/17970_{$i}.html"; array_push($urls,$url); } QueryList::run('Multi',array( 'list' => $urls, /*'curl' => array( CURLOPT_ENCODING => 'gzip' ),*/ 'success' => function($a,$_this){ $curl = $_this->curl; $reg = array( 'img' => array('#J-BigPic>img','src','',function($content){ //利用回调函数获取原图 return str_replace('_320x480', '', $content); }) ); //注意这里,原页面经过了gzip压缩,需要解压缩,可能经常有人误以为是乱码 $page = @gzdecode($a['content']); if(!$page){ $page = $a['content']; } QueryList::Query($page,$reg)->getData(function($item) use($curl){ $curl->add(array( 'url' => $item['img'], //指定图片下载目录 'file' => 'images/'.md5($item['img']).'.jpg' )); }); } )); |
布施恩德可便相知重
微信扫一扫打赏
支付宝扫一扫打赏