博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python爬取LOL英雄皮肤
阅读量:3950 次
发布时间:2019-05-24

本文共 1591 字,大约阅读时间需要 5 分钟。

  • 编写爬虫获取英雄联盟所有英雄的全部皮肤
  • 需要库:
    - requests
    - re
    - json
    - os
  • 效果:在该代码文件目录下生成n个Hero文件夹保存皮肤图片。
"""Date: 2019.11.7Author: JustlovesmileLanguage: python3"""import requestsimport reimport jsonimport osdef getHtml(url):    try:        r=requests.get(url)        r.raise_for_status()        r.encoding=r.apparent_encoding    except:        print(url+"爬取失败!")    else:        response = r.text        getInfo(response)def getInfo(res):    lists=re.findall(r'"keys":(.*?),"data"',res)    #print(lists)    hero_id=json.loads(lists[0])    #print(hero_id)    for hero in hero_id.values():        getSkin(hero)def getSkin(hero):    url='https://lol.qq.com/biz/hero/'+hero+'.js'    try:        r=requests.get(url)        r.raise_for_status()        r.encoding=r.apparent_encoding    except:        print(url+"爬取失败!")    else:        html=r.text        num=re.findall(r'"id":"(\d{4,6})","num"',html)        for i in range(len(num)):            img_url='https://game.gtimg.cn/images/lol/act/img/skin/big' + num[i] + '.jpg'            save_img(hero,img_url)def save_img(hero,img_url):    root=hero+"\\"    path=root+img_url.split('/')[-1]    try:        if not os.path.exists(root):            os.mkdir(root)        if not os.path.exists(path):            r=requests.get(img_url)            with open(path,'wb') as f:                f.write(r.content)                f.close()                print("文件保存成功!")        else:            print("文件已存在!")    except:        print("爬取失败!")    print(img_url+"已下载")def main():    url="https://lol.qq.com/biz/hero/champion.js"    getHtml(url)if __name__ == "__main__":    main()

转载地址:http://wbgwi.baihongyu.com/

你可能感兴趣的文章
linux学习之tr操作符用法
查看>>
shell的dirname $0和readlink用法
查看>>
设计模式——外观模式详解
查看>>
Android APP架构设计——MVC、MVP和MVVM介绍
查看>>
Android APP架构设计——MVP的使用示例
查看>>
Android开发——布局性能优化的一些技巧(一)
查看>>
NetWork——关于TCP协议的三次握手和四次挥手
查看>>
设计模式——观察者模式详解
查看>>
Java集合——LinkedList源码详解
查看>>
Android开发——LinearLayout和RelativeLayout的性能对比
查看>>
NetWork——关于HTTP、HTTPS的知识总结(以及Android网络优化建议)
查看>>
Android开发——支付宝和微信支付快速接入流程
查看>>
NetWork——TCP的流量控制和拥塞控制
查看>>
Android开发——解决方法数越界问题
查看>>
算法相关——Java排序算法之希尔排序(五)
查看>>
算法相关——Java排序算法之选择排序(六)
查看>>
Android开发—— 热修复Tinker源码浅析
查看>>
算法相关——Java排序算法之堆排序(七)
查看>>
Android开发——Volley的使用详解
查看>>
Android开发——Volley源码解析
查看>>