IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python一键获取某排名第一的手游,所有英雄皮肤(附源码) -> 正文阅读

[Python知识库]Python一键获取某排名第一的手游,所有英雄皮肤(附源码)

最近总是有老妹喊我打王者带她们上分,但是我吧不经常玩,有哪些皮肤,叫什么名字,长啥样都不知道,万一妹妹问起来答不上岂不是很尴尬!

这不得先把功课做足了,于是我用Python把这些皮肤全部给爬下来了!分享给大家一起做功课~

很多小伙伴因为在学习的过程中遇到很多问题没人指导都解决不了,或者因为没有好的学习资料学习路线,等等导致自己学不下去了,所以我准备了一个群,大家都可以加一下,里面都是志同道合的同学,这些资料也都是统统可以免费领取到,也会有老师不定时解答!点我加群免费领取

Python 环境、pycharm编辑器/永久激活/翻译插件
python 零基础视频教程
Python 界面开发实战教程
Python 爬虫实战教程
Python 数据分析实战教程
python 游戏开发实战教程
Python 电子书100本
Python 学习路线规划
都可以加群免费领取
Python 相关问题可解答
Python 相关外包需求可发布
Python 相关招聘需求可发布

先来看看今天要用到的
开发环境以及模块使用

python 3.6
pycharm >>> 安装包 / 安装教程 / 激活码[专业版] / pycharm插件 [翻译插件]
强烈推荐 使用pycharm编辑器 *******
requests  >>>  pip install requests
re >>> 内置模块 不需要安装
os >>> 内置模块

如何安装模块

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,大家可以自己试试看,没有代码的话,点我免费领取

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-21 15:19:48  更:2021-08-21 15:20:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 10:46:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码