用Python爬取手机壁纸,太简单了吧!
人生苦短,快学Python!
在Python爬虫的学习过程中,爬取图片几乎是每个初学者都练习过的项目,比如我们之前就分享过:如何用Python快速爬取小姐姐的美图?
其中我们需要先利用Python中的request库和正则构建获取函数,以此爬取页面中的图片url。
最近有位同学分享他抓包获取到了小米壁纸api接口,那这样再去手机壁纸,可就太简单了!我们只需访问接口,再解析json数据,即可获取精准的壁纸图片url。
小米壁纸是什么,其实就是小米手机系统自带的app,包含了各种风格的手机壁纸。
提供接口的同学给的链接实在太长了,我试了试删去了不太影响主要作用的参数,剩下的接口如下所示:
https://thm.market.xiaomi.com/thm/****/type=WALLPAPER&tag=二次元宅
如果你使用浏览器打开该链接,就能得到10张壁纸图片的详细数据。其中参数cardStart
控制翻页,调整参数tag
选择不同的标签的壁纸图片。
剩下的只需调用Python下载图片到本地即可,具体代码如下所示。
def download_img(url, file_name):res = requests.get(url)img = open(file_name, 'wb')img.write(res.content)img.close()
简单解释一下,requests发起get请求拿到图片的信息。
open打开文件,以file_name
(比如111.jpg)为文件名,wb代表以二进制覆盖写。
如果我们想批量下载壁纸图片怎么办呢?for循环就完事了呀!
在交互式环境中输入如下命令:
for i in range(1,20):url= f"https://thm.market.xiaomi.com/thm/*****/&cardStart={i}&type=WALLPAPER&tag=二次元宅"html = requests.get(url).contentdata = json.loads(html.decode('utf-8'))for j in range(10): # 一页10个image_url = data['apiData']['cards'][0]['products'][j]['imageUrl']name = data['apiData']['cards'][0]['products'][j]['name']print(name, image_url)image_name = f"./二次元宅/{name}.png"download_img(image_url, image_name)
在上述代码中,json.loads()
函数是将json格式数据转换为字典。接着再搭配for循环获取某一页的10个image_url
和name
,其中name
用于设置壁纸图片的本地路径+名称(使用相对路径下载到本地)。
最后调用前文中自定义的函数download_img()
,将每一张壁纸图片都下载到二次元宅文件夹中。
打开本地路径下的二次元宅
的文件夹,会发现所有的图片都已经被下载到本地。
是不是,太简单了吧!
用Python爬取手机壁纸,太简单了吧!相关推荐
- 用Python爬取手机壁纸,太简单了吧
用Python爬取手机壁纸,太简单了吧! 人生苦短,快学Python! 在Python爬虫的学习过程中,爬取图片几乎是每个初学者都练习过的项目,比如我们之前就分享过:如何用Python快速爬取小姐姐的 ...
- Python爬取手机壁纸
小编就爬取知乎上面那些好看的手机壁纸吧,各式各样都有! 代码很简单 只有14行,只有14行,只有14行!重要的事情说三遍!!! from urllib import request #从urllib库 ...
- python代码手机壁纸_大神教你如何用Python爬取手机壁纸,就是这么为所欲为!
随着智能手机的普及,使得人们生活便捷,不知各位小伙伴,给自己的手机设置的壁纸是什么样的呢?我觉得大家应该是去网上下载,或者去应用商店下载吧?这样做需要一个个的去浏览,十分浪费时间.因此我们需要一个便捷 ...
- 以某乎为实战案例,教你用Python爬取手机App数据
1 前言 最近爬取的数据都是网页端,今天来教大家如何爬取手机端app数据(本文以ios苹果手机为例,其实安卓跟ios差不多)! 本文将以『某乎』为实战案例,手把手教你从配置到代码一步一步的爬取App数 ...
- 教你用Python爬取手机App数据!居然有人说爬不了APP
最近爬取的数据都是网页端,今天来教大家如何爬取手机端app数据(本文以ios苹果手机为例,其实安卓跟ios差不多)! 本文将以『某乎』为实战案例,手把手教你从配置到代码一步一步的爬取App数据! 2. ...
- Python爬取wallhaven壁纸 2023.1.31
Python爬取wallhaven壁纸 壁纸页面 前言 源码 壁纸页面 前言 学习中,未加多线程,由于网站.图片大小等因素导致下载缓慢 望各位大神提出建议并加以修善 网站主页及其爬取页如下,可自行修改 ...
- python爬取InterfaceLIFT壁纸,下载到本地,数据存入数据库(mysql,mongodb)
github地址 欢迎star,欢迎拍砖 适用pythopn版本 Python 2.7 or Python 3.6 只在这两个版本之下测试过,正常运行 项目文件说明 main.py 主要文件 mysq ...
- Python爬取百度壁纸图片
Python爬取百度壁纸图片 #! /usr/bin/python -- coding: utf-8 -- @Author : declan @Time : 2020/05/31 16:29 @Fil ...
- java手机壁纸_用java爬取手机壁纸
JFrame包,循环爬取图片然后下载图片 public class DownWallpaper extends JFrame implements ActionListener{ privat ...
最新文章
- 300道Python面试题,备战春招!
- position: relative;导致页面卡顿
- P1244 青蛙过河
- 打卡小程序源码修复登录接口
- java多因子认证,Milvus 实战|生物多因子认证系列 (二):人脸识别
- Asp.net 2.0生命周期
- ncurses窗口机制:wprintw(), wrefresh()
- Monostate模式
- 【气动学】基于matlab GUI弹道仿真【含Matlab源码 1136期】
- 四叶草配置工具Clover Configurator for Mac
- Ubuntu虚拟机镜像下载及创建
- 设计模式(四):模板方法模式、迭代器和组合模式、状态模式
- 基于python的咖啡数据集分析
- C++笔记 蒙特卡罗计算π值
- 设计方法(原型法、敏捷开发)
- Java有参构造和无参构造
- signature=cfd49330e04062ab770d7ddb4cfcf23a,Przed pierwszym rozbiorem Polski
- 勒索软件Snatch攻击原理分析
- 宽带显示服务器未启动,解决访问网上邻居出现“网络不存在或尚未启动”故障...
- Flash 特效原理:图片平面墙