当前位置:
首页 > temp > python入门教程 >
-
Python一键获取某排名第一的手游,所有英雄皮肤(附源码)
最近总是有老妹喊我打王者带她们上分,但是我吧不经常玩,有哪些皮肤,叫什么名字,长啥样都不知道,万一妹妹问起来答不上岂不是很尴尬!
这不得先把功课做足了,于是我用Python把这些皮肤全部给爬下来了!分享给大家一起做功课~
很多小伙伴因为在学习的过程中遇到很多问题没人指导都解决不了,或者因为没有好的学习资料学习路线,等等导致自己学不下去了,所以我准备了一个群,大家都可以加一下,里面都是志同道合的同学,这些资料也都是统统可以免费领取到,也会有老师不定时解答!点我加群免费领取
|
Python 环境、pycharm编辑器/永久激活/翻译插件 |
|
python 零基础视频教程 |
|
Python 界面开发实战教程 |
|
Python 爬虫实战教程 |
|
Python 数据分析实战教程 |
|
python 游戏开发实战教程 |
|
Python 电子书100本 |
|
Python 学习路线规划 |
|
都可以加群免费领取 |
|
Python 相关问题可解答 |
|
Python 相关外包需求可发布 |
|
Python 相关招聘需求可发布 |
先来看看今天要用到的
开发环境以及模块使用
|
python 3.6 |
|
pycharm |
|
|
|
|
|
|
|
|
|
如何安装模块:
|
1.win + R 输入 cmd 输入安装命令: pip install 模块名 回车 |
|
2.pycharm里面安装 terminal 输入安装命令: pip install 模块名 回车 |
|
模块安装失败的原因:
|
1. 提示:pip 不是内部命令 |
|
你python环境变量可能没有设置好 |
|
2. 有安装进度条显示,但是安装到一半出现报错了 |
|
因为python安装模块都是在国外的网址进行下载安装的, 国内请求国外 网速很慢,下载速度大概只有 几KB |
|
read time out 网络连接超时 你可以切换为国内的镜像源 |
|
3. 明明在cmd里面安装好了,但是在pycharm 提示我没有这个模块 |
|
你pycharm里面python解释器没有设置,你在pycharm设置里面重新设置一下 |
|
Python能做什么? 学习方向是什么样? 很多小伙伴, 学习python之后不知道做什么~
如果没有一个方向, 学python相关知识点 就会很乱
|
1.黑客 |
|
2.人工智能 |
|
3.数据挖掘 |
|
4.游戏开发 |
|
5.数据可视化 |
|
6.自动化 |
|
7.web后端开发 |
|
8.爬虫 |
|
9.小程序开发 [分为前端[页面] 后端[功能]] |
|
10.app 可以做 不适合 |
|
本节爬虫基本思路:
一. 数据来源的分析
|
1. 确定需求 (我要爬取什么内容) |
|
2. 通过开发者工具进行抓包分析 |
|
图片 / 如果你有获取 网站url ID 视频ID 音频ID |
|
图片ID 里面一个参数 是实时更新变化 sign 找js |
|
二. 代码实现
|
1.发送请求 对于英雄列表数据包发送请求 |
|
2.获取数据 获取json字典数据 response.json() |
|
3.解析数据 json数据直接解析 获取 英雄ID 以及 英雄名字 |
|
4.发送请求 请求英雄的详情页 |
|
5.获取数据 获取网页源代码 response.text |
|
6.解析数据 通过re正则表达式 提取皮肤名字 |
|
7.进行简单处理 |
|
8.保存数据 |
|
OK那开始今天的正式内容吧,先看看模块
import requests # 数据请求 第三方模块 pip install requests import pprint # 格式化输出的模块 import re # 正则表达式模块 内置模块 import os # 发送请求 # 请求方式是什么样的? get请求 post请求 # get: 是从服务器上面你直接获取数据 可以在url上面看到请求参数 # post: 向服务器提交数据 提交一个from data 表单数据 登录都是post 有安全性 # 看不到请求参数 [开发者工具看] # 请求头 headers : 把python代码伪装成浏览器 # user-agent: 浏览器的基本信息 字典的形式
url地址直接复制过来
url = 'https://pvp.qq.com/web201605/js/herolist.json'
headers 也是复制
headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36' }
这样代码就要自己敲了
response = requests.get(url=url, headers=headers)
json_data = response.json()
[] 表示列表 可以遍历
for index in json_data: # json字典数据 直接解析取值 键值对取值, # 根据冒号左边的内容 提取冒号右边的内容 hero_name = index['cname'] hero_id = index['ename'] filename = f'{hero_name}\\' if not os.path.exists(filename): os.mkdir(filename)
字符串格式化方法
index_url = f'https://pvp.qq.com/web201605/herodetail/{hero_id}.shtml' response_1 = requests.get(url=index_url, headers=headers)
自动转码...自动识别编码
response_1.encoding = response_1.apparent_encoding
() 精确匹配 表达的括号里面的内容是我想要的呀
正则匹配出来的内容 是 列表 [0] 取列表里面第一个元素 0 索引位置
skin_name = re.findall('data-imgname="(.*?)">', response_1.text)[0]
&0 \d 是匹配一个数字 \d+ 匹配一个或者多个数字
skin_name = re.sub('&\d+', '', skin_name).split('|')
len() 统计列表元素个数 3个元素 左闭右开
for link in range(1, len(skin_name) + 1): # 因为皮肤图片url link_name = skin_name[link - 1] link_url = f'https://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{hero_id}/{hero_id}-bigskin-{link}.jpg' # 获取图片的二进制数据 img_content = requests.get(url=link_url, headers=headers).content with open(filename + link_name + '.jpg', mode='wb') as f: f.write(img_content) print(f'{link_name}保存成功.....')
ok,大家可以自己试试看,需要获取源码的话,看主页加群免费领取
作者:静默虚空
出处:https://www.cnblogs.com/hahaa/p/15167062.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数