Python爬虫——你们要的王者荣耀高清图
曾经144区的王者
学了计算机后
头发逐渐从李白变成了达摩
秀发有何用,变秃亦变强
(emmm徒弟说李白比达摩强,变秃不一定变强)

前言
前几天开了农药的安装包,发现农药是.Net实现的游戏
虽然游戏用的语言和排位一样让人恼火
但感觉图片美工还是可以的
比如:
不知...不知道你们是不是和我一样喜欢

玩阴阳师呢,我可是Ssr只有两只狗子的非酋呢

正文
在 http://pvp.qq.com/web201605/herolist.shtml 可以看到全英雄列表。

按F12查看元素
看到下面这一堆<li></li>标签了吗
里面的href就是每个英雄的详情地址
图片就在这个链接中

拿到selector
body > div.wrapper > div > div > div.herolist-box > div.herolist-content > ul > li > a
英雄列表获取源码:
def getHeroList():
'''取所以英雄存入list中'''
hero = {}
res = requests.get(mainurl)
sp = BeautifulSoup(res.content, "html.parser")
lists = sp.select('body > div.wrapper > div > div > div.herolist-box > div.herolist-content > ul > li')
for li in lists:
oj = li.select('a')[0];
hero['url'] = oj['href']
hero['name'] = oj.text
# 正则表达式取ename编号
ename = re.findall('herodetail/(\d+)\.shtml', oj['href'])[0]
hero['ename'] = ename
herolist.append(hero)
hero = {}
return herolist
进入英雄详情之后
可以发现,要保存图片的地址也在<li></li>中
他的selector是:
body > div.wrapper > div.zk-con1.zk-con > div > div > div.pic-pf > ul > li > i > img

只需要将这个图片保存下来就可以了
代码:
def saveImg(filepath, imgUrl):
'''下载图片并保存'''
r = requests.get(imgUrl, stream=True)
with open(filepath, 'wb') as f:
for chunk in r.iter_content(chunk_size=1024):
if chunk:
f.write(chunk)
f.flush()
f.close()
全部代码:
# -*- coding: utf-8 -*- import os
import re
import requests
from bs4 import BeautifulSoup import sys
reload(sys)
sys.setdefaultencoding('utf-8') baseurl = 'http://pvp.qq.com/web201605'
mainurl = 'http://pvp.qq.com/web201605/herolist.shtml'
herolist = [] def getHeroList():
'''取所以英雄存入list中'''
hero = {}
res = requests.get(mainurl)
sp = BeautifulSoup(res.content, "html.parser")
lists = sp.select('body > div.wrapper > div > div > div.herolist-box > div.herolist-content > ul > li')
for li in lists:
oj = li.select('a')[0];
hero['url'] = oj['href']
hero['name'] = oj.text
# 正则表达式取ename编号
ename = re.findall('herodetail/(\d+)\.shtml', oj['href'])[0]
hero['ename'] = ename
herolist.append(hero)
hero = {}
return herolist def saveImg(filepath, imgUrl):
'''下载图片并保存'''
r = requests.get(imgUrl, stream=True)
with open(filepath, 'wb') as f:
for chunk in r.iter_content(chunk_size=1024):
if chunk:
f.write(chunk)
f.flush()
f.close() if __name__ == '__main__':
hlist = getHeroList()
for hero in herolist:
herodir = os.path.join(os.getcwd(), hero['name'])
heropage = baseurl + '/' + hero['url']
print('[%s]' % (herodir))
res = requests.get(heropage)
sop = BeautifulSoup(res.content, "html.parser")
li = sop.select('body > div.wrapper > div.zk-con1.zk-con > div > div > div.pic-pf > ul ')[0]['data-imgname']
li = str(li).split('|')
print(li)
# 遍历所有皮肤
for i in range(len(li)):
imgurl = 'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/' \
+ hero['ename'] + '/' + hero['ename'] + '-bigskin-' + str(i + 1) + '.jpg'
imgname = os.path.join(herodir, li[i] + ".jpg")
print('----[%s]--[%s]---' % (imgname, imgurl))
# 创建英雄目录
if os.path.exists(herodir) == False:
os.mkdir(herodir)
saveImg(imgname, imgurl)
图片生成在同级目录

Python爬虫——你们要的王者荣耀高清图的更多相关文章
- python 爬取王者荣耀高清壁纸
代码地址如下:http://www.demodashi.com/demo/13104.html 一.前言 打过王者的童鞋一般都会喜欢里边设计出来的英雄吧,特别想把王者荣耀的英雄的高清图片当成电脑桌面 ...
- python爬虫王者荣耀高清皮肤大图背景故事通用爬虫
wzry-spider python通用爬虫-通用爬虫爬取静态网页,面向小白 基本上纯python语法切片索引,少用到第三方爬虫网络库 这是一只小巧方便,强大的爬虫,由python编写 主要实现了: ...
- Node JS爬虫:爬取瀑布流网页高清图
原文链接:Node JS爬虫:爬取瀑布流网页高清图 静态为主的网页往往用get方法就能获取页面所有内容.动态网页即异步请求数据的网页则需要用浏览器加载完成后再进行抓取.本文介绍了如何连续爬取瀑布流网页 ...
- 参考学习《Python学习手册(第4版)》高清中文PDF+高清英文PDF+源代码
看到第38章了,整体感觉解释详细,例子丰富:关于Python语言本身的讲解全面详尽而又循序渐进不断重复,同时详述语言现象背后的机制和原理:除语言本身,还包含编程实践和设计以及高级主题.边看边写代码.不 ...
- 《Python编程第4版 下》高清PDF|百度网盘免费下载|Python基础编程
<Python编程第4版 下>高清PDF|百度网盘免费下载|Python基础编程 提取码:tz5v 当掌握Python的基础知识后,你要如何使用Python?Python编程(第四版)为这 ...
- 《Python编程第4版 上》高清PDF|百度网盘免费下载|Python基础编程
<Python编程第4版 上>高清PDF|百度网盘免费下载|Python基础编程 提取码:8qbi 当掌握Python的基础知识后,你要如何使用Python?Python编程(第四版)为 ...
- 《笨办法学 Python(第四版)》高清PDF|百度网盘免费下载|Python编程
<笨办法学 Python(第四版)>高清PDF|百度网盘免费下载|Python编程 提取码:jcl8 笨办法学 Python是Zed Shaw 编写的一本Python入门书籍.适合对计算机 ...
- 第二十八篇、自定义的UITableViewCell上有图片需要显示,要求网络网络状态为WiFi时,显示图片高清图;网络状态为蜂窝移动网络时,显示图片缩略图
1)SDWebImage会自动帮助开发者缓存图片(包括内存缓存,沙盒缓存),所以我们需要设置用户在WiFi环境下下载的高清图,下次在蜂窝网络状态下打开应用也应显示高清图,而不是去下载缩略图. 2)许多 ...
- SDWebImage -- 封装 (网络状态检测,是否打开手机网络下下载高清图设置)
对SDWebImage 进行封装,为了更好的节省用户手机流量,并保证在移动网络下也展示高清图,对使用SDWebImage 下载图片之前进行逻辑处理,根据本地缓存中是否有缓存原始的图片,用户是否打开移动 ...
随机推荐
- thinkcmf 忘记后台登陆密码的解决办法
thinkcmf 忘记密码 或者 密码错误 如何修改后台登陆密码? 直接在后台登陆控制器里输入 dump(cmf_password('123456')); 参考文件路径 app\admin\contr ...
- Keil不能跳转到函数的定义怎么办
有时候我们右键一个函数名并点击Go To Definition Of xxx时,Keil却提示无法找到定义.但这个函数确实有定义的.这个时候可以试着重新编译整个工程,即可跳转到定义了.
- XML文档中的xmlns、xmlns:xsi和xsi:schemaLocation
文章转载自:https://yq.aliyun.com/articles/40353 相信很多人和我一样,在编写Spring或者Maven或者其他需要用到XML文档的程序时,通常都是将这些XML文档头 ...
- Spark连接MongoDB之Scala
MongoDB Connector for Spark Spark Connector Scala Guide spark-shell --jars "mongo-spark-connect ...
- mybatis06--动态sql
1.if标签 public interface StudentDao { /** *动态sql的查询 参数是Student对象 不确定 用户输入几个属性值 */ List<Student> ...
- What do cryptic Github comments mean?
LGTM — looks good to me ACK — acknowledgement, i.e. agreed/accepted change NACK/NAK — negative a ...
- JS 进阶知识点及常考面试题
将会学习到一些原理相关的知识,不会解释涉及到的知识点的作用及用法,如果大家对于这些内容还不怎么熟悉,推荐先去学习相关的知识点内容再来学习原理知识. 手写 call.apply 及 bind 函数 涉及 ...
- 从javaScript中学习正则表达式——RegExp
正则表达式工具:http://regexper.com 由于国外网络可以选择 https://github.com/javallone/regexper-static 离线安装作为本地服务. 正则 ...
- GIT 身份验证失败问题解决方案,由于修改密码产生的问题
fatal: Authentication failed for 'http:xxxxxxxxxx.git/' 解决方案 1. git config --global user.name " ...
- [摘录] 图灵机与lambda演算的关系
在阅读函数式编程相关资料时,看到如下一段话.感觉说的很好,可以帮助我这种学渣一点点的建立起整个知识体系. 以下片段,摘抄自豆瓣网友 赛义甫 的豆列 “逻辑与计算” 中的一段介绍. 莱布尼兹曾经有两个梦 ...