php练习 爬取王者荣耀官网全皮肤

昨天在博客看见一篇关于用python爬王者荣耀中所有英雄的皮肤的文章,感觉挺有趣的,下载来当壁纸也不错,今天来用php也爬取一下、亲测可行。现在开始吧!
1.第一步首先打开

http://pvp.qq.com/web201605/herolist.shtml F12分析一波网页结构。。。
在这里插入图片描述外面li标签里的是英雄的头像,点击头像才会出来单个英雄的所有皮肤,这可咋整呀。我们要的是一一口气把所有英雄的皮肤都爬取到本地,别急,看network。
在这里插入图片描述这有个herolist.json文件,里面是所有英雄的名字,皮肤。
点击进入英雄的详情页。。继续F12

在这里插入图片描述

多点几个分析。。发现皮肤的图片地址都是类似这种格式

http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/(英雄编号)/(英雄编号)-bigskin-(第几个皮肤).jpg

而编号和皮肤数都在刚才的json文件中。。。

下面就开始写代码了。。。完整代码如下:

<?php
//防止出现warning
error_reporting(E_ALL & ~E_NOTICE);
//json文件路径
$url = 'http://pvp.qq.com/web201605/js/herolist.json';
//获取json文件内容
$string = file_get_contents($url);
//去掉bom头文件 不然转换数组为null
$response = trim($string, chr(239) . chr(187) . chr(191));
//数组转化
$arr = json_decode($response, true);
//遍历
foreach ($arr as $k => $v) {
    $ename = $arr[$k]['ename'];
    $cname = $arr[$k]['cname'];
    $skinName = explode('|', $arr[$k]['skin_name']);
    $skinCount = count($skinName);
    for ($i = 1; $i <= $skinCount; $i++) {
        $urlPicture = "http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/$ename/$ename-bigskin-" . $i . ".jpg";
        $name = 'D:/img/' . $cname . $skinName[$i] . '.jpg';//选择存放的路径 在你本地建相应的文件夹
        $content = file_get_contents(@iconv('UTF-8', 'GBK', $urlPicture));
        file_put_contents(@iconv('UTF-8', 'GBK', $name), $content);

    }

}

ok 大功完成!然后直接运行这个php文件 开始爬取。。。。
看下成果
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值