python3爬虫之多线程爬取英雄联盟所有皮肤图片

线程不要太高,容易出错,大约用时1分钟左右。

import requests
import json
import os
import threading
import re
import time
h=[] #定义数列
n=0
# from lxml import etree
s = time.time()  #获取程序启动时的时间
#print(s)
def pa(i,se):global nse.acquire()  #信号量减一id = i['heroId'] #获取heroId的值name = i['title']  #获取title的值res3 = requests.get("https://game.gtimg.cn/images/lol/act/img/js/hero/{}.js".format(id)) #访问js文件获取一个英雄的所有信息res3_json = json.loads(res3.text)  #把格式转化为json格式data3 = res3_json.get('skins') #获取skins的值# print(data3)for j in data3:names = j['name'] #获取name的值skinId = j['skinId'] #获取skinId的值c = re.findall(r'[^*"/:?\\|<>]',names,re.S)  #排除匹配的特殊字符d = "".join(c)  #传递给d# print(names,skinId)res2 = requests.get('https://game.gtimg.cn/images/lol/act/img/skin/big{}.jpg'.format(skinId)) #访问图片获取响应包if res2.status_code == 200: #判断是否响应成功res2_content = res2.content #转换为2进制#print(res2.text)a = './英雄联盟/' + str(name)b = a + '/' + str(d) + '.jpg'#print(a, b)if not os.path.exists('./英雄联盟/'): #如果不存在此目录时os.mkdir('./英雄联盟/') #创建目录if not os.path.exists(a):os.mkdir(a)with open(b, "wb") as f:  #生成.jpg的空白图片f.write(res2_content) #把获取的2进制写入图片内print(d) #输出信息n+=1se.release() #信号量加1
def duo():res1 = requests.get("https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js") #访问js文件res1_json = json.loads(res1.text) #改为json格式# print(res1_json)data1 = res1_json.get('hero')  #获取hero的值semaphore=threading.Semaphore(20)  #线程为50for i in data1:t=threading.Thread(target=pa,args=(i,semaphore)) #pa为pa()函数,i和semaphore为传递的参数t.start() #执行多线程h.append(t) #把对象储存在列表中for k in h:k.join()  #子线程执行完才执行主线程
if __name__=='__main__': #调用则不能执行下面的函数duo()f=time.time()  #程序执行完成后的时间戳print('用时:',f-s,'秒') #爬虫完成所需的时间print('一共生成',n,'个图片')

结果



欢迎大家交流学习

python3爬虫之多线程爬取英雄联盟所有皮肤图片相关推荐

  1. 【Python爬虫】爬取英雄联盟所有皮肤图片实现千图成像~

    前文 本文主要分为两个部分 一部分是爬虫,这边是选择爬取英雄联盟官网英雄资料中的英雄皮肤图片,如下为新英雄seraphine的页面,包含英雄对应的所有皮肤: 另一部分是图片的合成,先将所有英雄皮肤图片 ...

  2. 爬取英雄联盟所有皮肤图片实现千图成像~

    前文 本文主要分为两个部分 一部分是爬虫,这边是选择爬取英雄联盟官网英雄资料中的英雄皮肤图片,如下为新英雄seraphine的页面,包含英雄对应的所有皮肤: 另一部分是图片的合成,先将所有英雄皮肤图片 ...

  3. Python爬取英雄联盟全皮肤

    Python爬取英雄联盟皮肤 打开英雄联盟官网:https://lol.qq.com,点击游戏资料,按F12进入开发者模式.刷新,找到hero_list.js,里面有我们需要的网址以及其他信息. 代码 ...

  4. python爬取英雄联盟所有皮肤价格表_实用Python是如何爬取英雄联盟(lol)所有皮肤,涨知识了...

    小三:"怎么了小二?一副无精打彩的样子!"html 小二:"唉!别提了,还不是最近又接触了一个叫英雄联盟的游戏,游戏中不少皮肤都须要花钱买,可是我钱不够呀..." ...

  5. python爬取英雄联盟所有皮肤价格表_利用Python协程来爬取LOL所有英雄的皮肤高清图片...

    最近有一朋友要LOL的数据进行数据分析,叫我帮他抓一下数据.突发奇想,顺便把英雄的所有皮肤下载到本地好了. PS: 安装了LOL的伙伴图片直接在LOL文件夹里面,可以百度寻找.此贴仅分享下技术思路以及 ...

  6. Python爬虫之selenium爬取英雄联盟官网英雄皮肤图片下载到本地和保存到数据库

    从英雄联盟皮肤网站的网页源代码中获取不到英雄的皮肤地址 通过selenium可以轻松获取想要的内容 源码展示 from selenium import webdriver from time impo ...

  7. Python爬虫实战| Python爬取英雄联盟高清壁纸

    先看一下最终爬取的效果,每个英雄的壁纸都被爬取下来了: "黑暗之女 安妮"的12张壁纸: 高清大图: 下面开始正式教学! 版本:Python 3.5 工具:Jupyter note ...

  8. Python爬虫练习之爬取英雄联盟皮肤

    毕业设计还没有弄完,但又不想弄,就先写个爬虫换换心情吧. 爬取的是英雄联盟英雄的皮肤,不过首页的url地址没有我们想要的数据,需要找到真实的url地址,就是简单的json文本,过程比较简单,步骤都写在 ...

  9. 爬虫基础(案例:爬取英雄联盟全皮肤)

    爬取思路: 1.首先分析是静态数据还是动态数据,HTML源码中找不到英雄页面的信息,所以是静态数据. 2.chrom调试抓包,找到皮肤信息所在的URL ,这里第一个英雄皮肤所在的URL为https:/ ...

最新文章

  1. iOS 线程之GCD的高级使用方法
  2. 解决python2.x文件读写编码问题
  3. 苹果挂端口方法_苹果新系统遭吐槽!SSH 默认规则被破坏,程序员无法登录 Web 服务器......
  4. golang变量使用细节
  5. hibernate的缓存技术使用
  6. [CODEVS1205]单词反转
  7. Sql Server全局变量(转)
  8. 为什么C++永不过时?
  9. 大型情感剧集Selenium:1_介绍 #华为云·寻找黑马程序员#
  10. Linux内核 eBPF基础:ftrace源码分析:过滤函数和开启追踪
  11. jsp引用带参数的js文件,例如 script src=a.js?ctxpath=${base
  12. Linux读写I2C设备I2C_RDWR用法
  13. torch.eq(input, other, out=None)
  14. mdt 计算机名_MDT Administrator
  15. 上交计算机系专硕学费,上海交通大学2021级专硕学费再涨,最高翻3倍!@上海考研党...
  16. 意图推荐 Metapath-guided Heterogeneous Graph Neural Network for Intent Recommendation
  17. 41.clip-path 滚动特效
  18. DB2表空间状态列表
  19. OSSH免费版华为Portal
  20. ARM Linux控制CDS5516

热门文章

  1. codefroces 601A 题意唬人的最短路
  2. 南大周志华vs清华孙茂松深刻思辩:AI本科教育该不该单独设系?
  3. mysql pdf 电子书大全 转载
  4. 中职计算机英语基础教程,中职计算机专业英语课如何为专业课程服务
  5. 浅谈爬虫工程师的前景
  6. js jquery控制input为只读
  7. 华为p30链接android auto,华为p30pro怎么连接车载 华为p30pro连接车载方法
  8. matlab 表格的颜色设置,如何根据表格中的数据修改合适的单元格颜色(在Matlab中)?...
  9. MYSQL 获得当前日期时间 函数 当前时间后一月
  10. 如何构建实验室仪器设备的质量管理体系?