事情的起因呢是这样的,初恋前几天突然给我发消息,内心一阵的波涛汹涌啊以为好事将近。聊了几句之后才发现她这是醉翁之意不在酒啊
特意找上我居然是因为辣条我是程序员来让我想办法帮她追现在隔壁家的小哥哥,真的是叔可忍婶不可忍啊。但是面对初恋的苦苦哀求着实没有办法抵抗啊,谁叫我之前舔的那么严重呢~
(你们说说我是不是太卑微了,不过你们记得持续留意,我会告诉你们我是怎么逆风翻盘的。你们信吗?如果信的话告诉我你的依据,我看对不对,有奖竞猜了哈!!!)
于是乎我给她制定了一系列只有我们程序员才能玩的转的“恋爱攻略”
首先要想成功那必须就得先了解对方的喜好,奈何初恋又是比较羞涩的着实不好意思开口去问,于是只能我亲自出手开始第一步行动,首先咱们先从他最喜欢的王者农药下手。
估计有些人就要问辣条了这有啥用啊,难道加上好友一起玩? 当然没有那么简单了,我们不仅可以一起玩,这个之后表白啥的都能用上的(这招叫做投其所好)
那么作为以为标准的程序员,辣条怎么会不考虑大家呢 毕竟程序员单身的数量尤其高啊所以大家跟上我的节奏一步一步来今天我先来告诉你们怎么样把王者的那些皮肤啥的都爬下来,这些在后面的表白啥的都是能用上的(悄悄告诉你们男女是通用的)
下面进入正题:怎么样用Python爬出王者皮肤图片呢?
一:步骤需求
1.获取王者荣耀url的地址
2.王者荣耀标准皮肤地址
3.推测图片是如何渲染的
二.涉及知识点
1.requests模块 请求库
2.os模块 文件操作库
3.pyquery模块 解析库
4.python语法
for循环
迭代器
正则匹配
函数
字典
三:思路
四.代码和执行效果
import requests
import os
from pyquery import PyQuery
# 1
# 分析目标网页
# 明确爬取的url路径 url='https://pvp.qq.com/web201605/js/herolist.json'
# 说明你是用浏览器访问的
headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) ' 'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/' '87.0.4280.88 Safari/537.36'
}
2.发送requests请求
# 发送requests请求
# 模拟浏览器发送请求
# 获取响应数据
herolist=requests.get(url,headers=headers).json()
3.把自己想要的数据解析出来
# 解析数据--json模块
# 把自己想要的数据解析出来
# #那我们遍历上面这个列表就能拿到每个英雄的字典数据
for i in herolist: # print(i['ename'],i['cname'],i['hero_type']) url_detail = 'https://pvp.qq.com/web201605/herodetail/%s.shtml'%i['ename'] html = requests.get(url_detail).content doc = PyQuery(html) # print(doc) items = doc('.pic-pf').items() # print(items) # print(list(items)) for item in items: print(type(item)) # print(type(item)) # 获取皮肤的名字 name_datas = item.find('ul').attr('data-imgname') # print(name_datas.split('|')) name_data_list=name_datas.split('|') a = 0 for name_data in name_data_list: a = a+1 print(name_data)
# # img='http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/%s/%s-bigskin-%s.jpg'% (i['ename'],i['ename'],a)print(img)
# # hero_img_data=requests.get(img).content
4.保存数据
保存数据
# 保存数据# 保存在目标文件夹中 # 'img/英雄名字/皮肤图片' if os.path.exists('./王者') is False: os.mkdir('./王者') if not os.path.exists('./王者/%s'%i['cname']): os.mkdir('./王者/%s'%i['cname']) # 有的话直接保存 with open('./王者/%s/%s.jpg'%(i['cname'],name_data),'wb') as f: f.write(hero_img_data)
五:效果展示
五:最后总结一波
利用requests库请求得到数据,pyquery进行解析,os模块进行保存
舔狗不可怕,可怕的是又舔又有文化,如果你们看完有收获的话可以看一下底下民片,
① Python方向的学习路线图
② Python基础入门、爬虫、web开发、大数据分析方面的视频
③ 项目源码
④ 500多本编程类电子书
⑤ Python所有知识点汇总
⑥ 100个Python必背函数
辣条更新不易,后续时间会持续更新事件进展!!! 故事真是不过有辣条改进情结,更多的是为了让各位辣条们更好的消化接受