本文将用最简单的方法实现爬虫,用php语言实现。在本文里,不会使用专业术语,甚至可能会出现很多不正确的专业术语,还请各位海涵。
英雄资料的相关信息都会以数组或关联数组的结构储存起来。此时我们按住浏览器F12,点击网络或者NetWork,在左侧的各个文件寻找数组的位置,并且右键复制link address。我们就已经找到了URL。
将鼠标放在任何一个.jpg上,都会出现该图片所在的地址。观察可发现规律,所有英雄的图片所在地址都是https://game.gtimg.cn/images/lol/act/img/champion/英文名.png 这样命名的。所以我们需要找到每个英雄对应的英文名,即可获得图片的URL。
在之前的数组中,里面有一个alias的变量是用来记录每个英雄的英文名的。那么我们可以通过这个获得英雄的英文名从而得到图片的URL。
<?php $URL = 'https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js'; $jsonarr = json_decode(file_get_contents('https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js'),true); //file_get_contents获取此页面上的信息,json_decode用于解码成数组 //那么我们就可以获得所有英雄资料的数组了,名字叫$jsonarr for($i = 0 ; $i<count($jsonarr['hero']); $i++){ //遍历$jsonarr里面的变量[hero] $herolist = $jsonarr['hero']; //获得英雄列表 $hero = $herolist[$i]; //将英雄列表的每一个取出来,就是每个英雄 $EngName = $hero['alias']; //获得每个英雄的英文名 $Cname = $hero['name']; //获得每个英雄的中文名 // echo($EngName)."\t"; $heroimgURL = "https://game.gtimg.cn/images/lol/act/img/champion/{$EngName}.png"; //拼接URL //图片的URL,就可以将英文名拼接上去,获得每个英雄图片的URL $heroimg = file_get_contents($heroimgURL); //先获得每个图片的URL mkdir('lolheroimage',0777,true); // 创建目录 $path = 'lolheroimage/'; //设置路径,也就是刚刚创建的这个 file_put_contents("{$path}{$Cname}.jpg",$heroimg); //将图片保存起来 //参数意思分别为("{路径}{图片名}.jpg",图片URL) } ?>
图片结果如下: