午饭后看到一篇文章关于“用Python爬取王者荣耀官网的英雄皮肤图片”,于是顺手用PHP也写了一个,在这里给大家分享一下,贴出源码:
//下载王者荣耀皮肤图片
public function heroSkinDownload(){
$heroApi = 'https://pvp.qq.com/web201605/js/herolist.json';
$heroArr = json_decode(Curl::get($heroApi),true);
foreach ($heroArr as $v){
$saveDir = '/heroskin/' . $v['cname'] . '/';
$i = 1;
while (true){
$url = 'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/'.$v['ename'].'/'.$v['ename'].'-bigskin-'.$i.'.jpg';
$headers = get_headers($url);
if (!strstr($headers[0], '200')) {
break;
}
if (!file_exists($saveDir)) {
mkdir($saveDir);
}
$this->downloadFile($url, $saveDir . str_replace('/', '', parse_url($url)['path']));
$i++;
}
echo "下载==".$v['cname']."==success\n";
}
}
//下载远程文件
public function downloadFile($file_url, $save_to) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch,CURLOPT_URL,$file_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$file_content = curl_exec($ch);
curl_close($ch);
$downloaded_file = fopen($save_to, 'w');
fwrite($downloaded_file, $file_content);
fclose($downloaded_file);
}
运行如下:

下载结果:

(喜欢研究后端的小伙伴们可以点个关注~~~)

本文分享了PHP开发者如何使用Curl和文件操作下载王者荣耀官网英雄皮肤图片的过程,适合研究后端的小伙伴学习。
270

被折叠的 条评论
为什么被折叠?



