学习爬虫第一步-爬取王者荣耀助手上的英雄图片

我参考了https://blog.csdn.net/c406495762/article/details/76850843这篇文章,写的很好,照着一步步地做就好。

(1)首先是安装 Fiddler,之后在手机上安装安全证书

(2)要使用Fiddler进行手机抓包,首先要确保手机和电脑的网络在一个内网中,我是让电脑开放WIFI热点,手机连入。我的电脑插的无线网卡,然后安装了一个WIFI共享大师,开启WIFI让手机连入。

之后使用ipconfig命令获取电脑的ip

学习爬虫第一步-爬取王者荣耀助手上的英雄图片_第1张图片

之后在手机连接的网络中设置代理,主机名为电脑IP,端口为Fiddler的端口号

学习爬虫第一步-爬取王者荣耀助手上的英雄图片_第2张图片

之后进入app中,可以在Fiddler中看到,点击app的英雄,左侧选中该请求。根据看到的信息进行编码。

学习爬虫第一步-爬取王者荣耀助手上的英雄图片_第3张图片

之后新建py文件在pycharm中运行,代码如下:

#-*- coding: UTF-8 -*-
from urllib.request import urlretrieve
import requests
import os

"""
函数说明:下载《英雄联盟盒子》中的英雄图片

Parameters:
    heros_url - GET请求地址,通过Fiddler抓包获取
    header - header信息
Returns:
    无
Author:
    Jack Cui
Blog:
    http://blog.csdn.net/c406495762
Modify:
    2017-08-07
"""
def hero_imgs_download(heros_url,header):
    req = requests.get(url = heros_url, headers = header).json()
    hero_num = len(req['list'])
    print('一共有%d个英雄' % hero_num)
    hero_images_path = 'hero_images'
    for each_hero in req['list']:
        hero_photo_url = each_hero['cover']
        hero_name = each_hero['name'] + '.jpg'
        filename = hero_images_path + '/' + hero_name
        if hero_images_path not in os.listdir():
            os.makedirs(hero_images_path)
        urlretrieve(url = hero_photo_url, filename = filename)

if __name__ == '__main__':
    headers = {'Accept-Charset': 'UTF-8',
               'Accept-Encoding': 'gzip,deflate',
               'User-Agent': 'libcurl-agent/1.0',
               'X-Requested-With': 'XMLHttpRequest',
               'Content-type': 'application/x-www-form-urlencoded',
               'Connection': 'Keep-Alive',
               'Host': 'gamehelper.gm825.com'}
    heros_url = "http://gamehelper.gm825.com/wzry/hero/list?channel_id=90001a&app_id=h9044j&game_id=7622&game_name=%E7%8E%8B%E8%80%85%E8%8D%A3%E8%80%80&vcode=13.0.1.0&version_code=13010&cuid=F085FD039A551CBA365E143BA3084E29&ovr=8.1.0&device=Xiaomi_MI+6X&net_type=1&client_id=mSoGaH0StwH%2F%2BGiWsj%2BMdA%3D%3D&info_ms=rd31wwXnYk1cznR9dVR8Kw%3D%3D&info_ma=0%2BT%2BdCwzd1Xlaumf6T%2FIFVQr95sE4Y455yktjjm7oQU%3D&mno=0&info_la=69vnuHYKgmlKBloseSA63Q%3D%3D&info_ci=69vnuHYKgmlKBloseSA63Q%3D%3D&mcc=0&clientversion=13.0.1.0&bssid=0%2BT%2BdCwzd1Xlaumf6T%2FIFVQr95sE4Y455yktjjm7oQU%3D&os_level=27&os_id=fd1988f02026b8ab&resolution=1080_2030&dpi=440&client_ip=192.168.155.2&pdunid=27bda12 HTTP/1.1"
    hero_imgs_download(heros_url,headers)

运行结果如下:

学习爬虫第一步-爬取王者荣耀助手上的英雄图片_第4张图片

在设置的路径下可以看到下载的图片 

学习爬虫第一步-爬取王者荣耀助手上的英雄图片_第5张图片

就完成了,在过程中出了几个小问题:

1 设置好手机的网络代理后,手机无法联网,后来发现是电脑的Fiddler没打开,开启即可。

2 写.py文件的时候 import requests,提示没有requests模块,之后使用pip install requests失败

学习爬虫第一步-爬取王者荣耀助手上的英雄图片_第6张图片

然后参考文章https://blog.csdn.net/qq_34504481/article/details/81910253

写了pip.ini 文件,内容如下:

[golbal]

index-url=http://mirrors.aliyun.com/pypi/simple

[install]

trusted-host=mirrors.aliyun.com

之后又重启电脑,然后再执行安装requests的包就可以成功了

 

你可能感兴趣的:(学习爬虫第一步-爬取王者荣耀助手上的英雄图片)