Fiddler之掌上英雄联盟APP爬取(爬取全部英雄的图片)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Yk_0311/article/details/82824505

1.安装好Fiddler

下载链接:https://www.telerik.com/fiddler

2.手机APP抓包设置

3.安全证书的设置

第二,第三步参考链接:https://blog.csdn.net/c406495762/article/details/76850843
里面是关于安卓的设置
下面是关于ios的
首先要把Fiddler打开并且按照以上的步骤设置好
然后在手机上打开safari输入(自己的ip地址:8888)出现在这里插入图片描述
点击FiddlerRoot cerrificate 按步骤按照信任证书
最后在设置–通用–关于本机–证书信任设置中打开

4.打开掌上英雄联盟

点击商城–英雄页面
在这里插入图片描述
为了在Fiddler中更好的展示,点击排序–上架日期 从晚到早
然后玩下滑,将所有英雄都加载出来
打开Fiddler你可以看到
在这里插入图片描述

可以看到抓到的包,get请求,url地址,还有返回的JSON格式的信息
返回的信息中包含了图片的地址,名称
图中蓝字的信息,其实就是将url中page更改了,分别访问就可以得到所有信息了

5.代码

import requests
import os


def get_HTML(page):
    url = 'http://apps.game.qq.com/daoju/go/zmgoods/list?plat=ios&version=9822&cat=16&orderby=dtBegin&order=asc&page={}&pagesize=20'.format(
        page)
    headers = {'User-Agent': 'qtl 7.0.1 (iPhone; iOS 10.3.3; zh_CN)',
               'Host': 'apps.game.qq.com',
               'Connection': 'keep - alive'}
    try:
        r = requests.get(url, headers=headers)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        # print(r.json())
        # print(r.text)
        return r.json()
    except:
        print('11111')


def parse_json(json):
    items = json.get('data').get('goods')  # 返回的是一个列表
    for item in items:
        name = item['sGoodsName']  # 获取了名称
        imageurl = item['sGoodsPic']  # 获取了图片的链接
        # print(name, imageurl)
        yield name, imageurl


def saveimages(name, imageurl):  # 保存图片
    headers = {'User-Agent': 'Mozilla/5.0'}
    root = 'D://IDE//Pycharm//《网络爬虫实战开发》//手机App的抓取//images'
    if not os.path.exists(root):  # 如果根目录不存在就创建一个
        os.mkdir(root)
    path = root + '//' + name + '.jpg'  # 图片路径
    # try:
    if not os.path.exists(path):
        r = requests.get(imageurl, headers=headers, verify=False)  # 程序忽略SSL证书验证错误 如果没有CA认证的网站用requests访问的时候,会报出SSLerror
        r.raise_for_status()
        with open(path, 'wb') as f:
            f.write(r.content)
    # except:
    #     print('2222')


if __name__ == '__main__':
    for page in range(1, 9):
        a = get_HTML(page)
        for name, imageurl in parse_json(a):
            saveimages(name, imageurl)

6.总结

第一还是要配置好Fiddler
第二抓取APP的内容是和爬网页是差不多的,最重要的还是抓取包,分析其中的内容

猜你喜欢

转载自blog.csdn.net/Yk_0311/article/details/82824505