前往小程序,Get更优阅读体验!
立即前往
社区首页 >专栏 >爬取5K分辨率超清唯美壁纸

爬取5K分辨率超清唯美壁纸

作者头像
py3study
发布于 2020-01-16 15:32:59
发布于 2020-01-16 15:32:59
95900
代码可运行
举报
文章被收录于专栏:python3python3
运行总次数:0
代码可运行

爬取5K分辨率超清唯美壁纸

简介

网上的壁纸要么分辨率低,要么带有水印。这里有一款Mac下的小清新壁纸神器Pap.er,可能是Mac下最好的壁纸软件,自带5K超清分辨率壁纸,富有多种类型壁纸,当我们想在Windows或者Linux下使用的时候,就可以考虑将5K超清分辨率壁纸爬取下来。

编写思路

首先,打开Charles软件,进行抓包。打开Pap.er,开始抓包。(由于是Mac系统下的APP,所以非Mac系统的朋友可以直接看抓包结果)

抓包分析结果如下:

类型

地址

最新

https://service.paper.meiyuan.in/api/v2/columns/flow/5c68ffb9463b7fbfe72b0db0?page=1&per_page=20

最热

https://service.paper.meiyuan.in/api/v2/columns/flow/5c69251c9b1c011c41bb97be?page=1&per_page=20

女生

https://service.paper.meiyuan.in/api/v2/columns/flow/5c81087e6aee28c541eefc26?page=1&per_page=20

星空

https://service.paper.meiyuan.in/api/v2/columns/flow/5c81f64c96fad8fe211f5367?page=1&per_page=20

参数page不用改动,per_page指的是每页提取的数量,也就是我们想要提取的图片数量。

抓完包之后,我们开始编写5K壁纸解析程序

代码语言:javascript
代码运行次数:0
复制
# 爬取不同类型图片
def crawler_photo(type_id, photo_count):

    # 最新 1, 最热 2, 女生 3, 星空 4
    if(type_id == 1):
        url = 'https://service.paper.meiyuan.in/api/v2/columns/flow/5c68ffb9463b7fbfe72b0db0?page=1&per_page=' + str(photo_count)
    elif(type_id == 2):
        url = 'https://service.paper.meiyuan.in/api/v2/columns/flow/5c69251c9b1c011c41bb97be?page=1&per_page=' + str(photo_count)
    elif(type_id == 3):
        url = 'https://service.paper.meiyuan.in/api/v2/columns/flow/5c81087e6aee28c541eefc26?page=1&per_page=' + str(photo_count)
    elif(type_id == 4):
        url = 'https://service.paper.meiyuan.in/api/v2/columns/flow/5c81f64c96fad8fe211f5367?page=1&per_page=' + str(photo_count)

    
    headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"}
    # 获取图片链接列表数据,json格式
    respond = requests.get(url, headers=headers)
    # 对json格式转化为python对象
    photo_data = json.loads(respond.content)

    # 已经下载的图片张数
    now_photo_count = 1
    # 所有图片张数
    all_photo_count = len(photo_data)

    # 开始下载并保存5K分辨率壁纸
    for photo in photo_data:

        # 创建一个文件夹存放我们下载的图片(若存在则不用重新创建)
        if not os.path.exists('./' + str(type_id)):
            os.makedirs('./' + str(type_id))

        # 准备下载的图片链接,5K超清壁纸链接
        file_url = photo['urls']['raw']

        # 准备下载的图片名称,不包含扩展名
        file_name_only = file_url.split('/')
        file_name_only = file_name_only[len(file_name_only) -1]

        # 准备保存到本地的完整路径
        file_full_name = './' + str(type_id) + '/' + file_name_only

        # 开始下载图片
        Down_load(file_url, file_full_name, now_photo_count, all_photo_count)
        
        # 已经下载的图片数量加1
        now_photo_count = now_photo_count + 1

根据不同类型的壁纸,创建不同的文件夹编号进行分类。

上面的Down_load()函数是下载文件的意思,调用requests库,具体代码如下:

代码语言:javascript
代码运行次数:0
复制
# 文件下载器
def Down_load(file_url, file_full_name, now_photo_count, all_photo_count):
    headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"}

    # 开始下载图片
    with closing(requests.get(file_url, headers=headers, stream=True)) as response:
        chunk_size = 1024  # 单次请求最大值
        content_size = int(response.headers['content-length'])  # 文件总大小
        data_count = 0 # 当前已传输的大小
        with open(file_full_name, "wb") as file:
            for data in response.iter_content(chunk_size=chunk_size):
                file.write(data)
                done_block = int((data_count / content_size) * 50)
                data_count = data_count + len(data)
                now_jd = (data_count / content_size) * 100
                print("\r %s:[%s%s] %d%% %d/%d" % (file_full_name, done_block * '█', ' ' * (50 - 1 - done_block), now_jd, now_photo_count, all_photo_count), end=" ")

    # 下载完图片后获取图片扩展名,并为其增加扩展名
    file_type = filetype.guess(file_full_name)
    os.rename(file_full_name, file_full_name + '.' + file_type.extension)

chunk_size指的是单次请求的最大值,content_size指的就是我们下载5K超清壁纸的大小,为了能够直观显示下载情况,所以添加了下载进度条的显示效果。核心代码为file.write(data)。

下载完毕后,为了方便我们查看文件,所以需要给图片添加对应的扩展名,比如jpg,png,gif,这里使用到filetype库对文件进行解析,判断其类型。

最后,开始在main中爬取5K高清壁纸:

代码语言:javascript
代码运行次数:0
复制
if __name__ == '__main__':

    # 最新 1, 最热 2, 女生 3, 星空 4
    # 爬取类型为3的图片(女生),一共准备爬取100print("程序已经开始运行,请稍等……")
    crawler_photo(1, 100)
    crawler_photo(2, 100)
    crawler_photo(3, 100)
    crawler_photo(4, 100)

使用教程

  1. 确保以下库均已安装:
代码语言:javascript
代码运行次数:0
复制
# 如果没有安装,请使用pip install module安装
import requests
import filetype
import os
import json
from contextlib import closing

演示图片

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/05/19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python爬虫学习之爬取5K分辨率超清唯美壁纸
Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程及相关电子版书籍,欢迎前来领取!
python学习教程
2019/08/13
7800
python爬虫学习之爬取5K分辨率超清唯美壁纸
Python爬虫源码,腾讯课堂后台直播课程视频下载源码!
腾讯课堂是知名大厂的在线学习平台,其中在线直播课是不少机构引流和交易转化的利器工具,平台需要10个点的服务费用,营业额流水的10%,扣点还是比较高的,不过腾讯系平台可以全推,不担心被封禁!
二爷
2023/10/23
5520
Python爬虫源码,腾讯课堂后台直播课程视频下载源码!
JS破解初探,折腾到头秃的美拍视频采集下载
方法三:借用网络工具,其实是别人的破解接口获取视频地址,比如:https://meipai.iiilab.com
二爷
2020/07/22
7810
JS破解初探,折腾到头秃的美拍视频采集下载
爬取某网站小姐姐壁纸
User-Agent在浏览器的F12 Network里面获取(里面找到headers,在最下面就有你自己浏览器的User-Agent参数)
Eternity
2022/08/24
5750
如何手动写一个Python脚本自动爬取Bilibili小视频
国庆结束之余,某个不务正业的码农不好好干活,在B站瞎逛着,毕竟国庆嘛,还让不让人休息了诶~~
Angel_Kitty
2018/10/11
1.6K0
如何手动写一个Python脚本自动爬取Bilibili小视频
Python 自动爬取B站视频
Python 自动爬取B站视频 文件名自定义(文件格式为.py),脚本内容: #!/usr/bin/env python #-*-coding:utf-8-*- import requests import random import time def get_json(url): headers = { 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like G
公众号---人生代码
2019/07/24
1K0
4K美女壁纸爬取
4K美女壁纸爬取 一、前言 拍了zhenguo的课程,今天继续学习课程同时,尝试使用BeautifulSoup4这个网页解析的方法爬取图片,看完后心血来潮,想自己也试一下。 爬完后并总结这篇投稿给zhenguo,奖励我50元稿费,很开心。 最先想到的是彼岸图网,这个网站上有很多4k壁纸,打开网页后,我选择了4k美女壁纸作为本次爬虫的目标,爬取到的图片截图如下: 二、过程 1.首先,我们拿到前三页的网页地址。 2.通过分析可以看出,当页面变化时,index后面会发生改变,但在第一页时并没有数字显示,所以
double
2022/06/13
2.5K0
4K美女壁纸爬取
python爬虫超清桌面壁纸
先说思路,把获取到的18种类型的缩略图遍历,先遍历类型再遍历类型里面的缩略图。获取图片详情里面的图片的src地址即可,然后调用写好的图片下载方法就可以把图片下载到本地了
用户6297767
2023/11/21
2570
python爬虫超清桌面壁纸
爬虫篇 | 用Python爬超级搞笑的视频
最近整理一个爬虫系列方面的文章,不管大家的基础如何,我从头开始整一个爬虫系列方面的文章,让大家循序渐进的学习爬虫,小白也没有学习障碍.
龙哥
2019/10/24
1.1K0
爬虫篇 | 用Python爬超级搞笑的视频
python爬取图床壁纸
# coding=utf-8 """ 作者:gaojs 功能: 新增功能: 日期:2022/5/13 20:14 """ import os.path import json import pprint import re import requests from faker import Factory def get_random_ua(): """ 获取随机UA """ fact = Factory.create() ua
懿曲折扇情
2022/08/24
3220
爬取壁纸
本次爬虫主要爬取的是4k壁纸网的美女壁纸,该网页的结构相对比较简单,这次爬虫的主要目的学会使用bs进行解析,另外是关于当爬取的数据是非文本数据时数据的解析问题。 最终完成代码: import requests import time #import _thread # 爬虫结果输出路径 out_dir = './pictures/' root_url = 'https://www.4kbizhi.com/meinv/' headers = { 'Connection': 'keep-alive',
爱编程的小明
2022/09/06
6640
爬虫实例十六:python爬取高质量美女壁纸
接下来进入一个全新的页面,接着打开抓包工具,选择XHR,并且不要刷新!不要刷新!不要刷新! 然后开始下拉。
远方的星
2021/08/04
9480
爬虫实例十六:python爬取高质量美女壁纸
Python爬取美女图片 爬虫基础
作为一个考研狗,每天除了日复一日的复习外,偶尔也想给自己寻找一些生活的小乐趣,今天突然想到了自己曾经稍微接触的爬虫,想看看可以爬取些图片放到电脑上,就花了些时间改了改之前的爬虫代码,爬取了一部分照片先量一下战绩吧。照片不多但也算是自己的一次爬虫小经验。
全栈程序员站长
2022/09/13
6540
Python3 requests 下载进度条
* 网站名称:obaby@mars * 网址:https://h4ck.org.cn/ * 本文标题: 《Python3 requests 下载进度条》 * 本文链接:https://h4ck.org.cn/2021/06/python3-requests-%e4%b8%8b%e8%bd%bd%e8%bf%9b%e5%ba%a6%e6%9d%a1/ * 转载文章请标明文章来源,原文标题以及原文链接。请遵从 《署名-非商业性使用-相同方式共享 2.5 中国大陆 (CC BY-NC-SA 2.5 CN) 》许可协议。
obaby
2023/02/22
1.3K0
竟然如此简单!输入明星名字就可以直接爬取高清图片
听说你在自己喜欢的明星壁纸?比如李易峰,王一博,易烊千玺、王源、王俊凯,李现等。今天教你批量下载这些明星高清壁纸**(文末有福利)**
Python研究者
2021/06/21
1.2K0
【Python自动更换桌面壁纸】爬取7000张4K超清壁纸,并制作自动更换桌面脚本,让你的壁纸一年都不重复
所以,我打算把这些壁纸都爬取下来,然后在做一个自动跟换桌面壁纸的脚本,这样基本上你一年都可以每天都有不重复桌面了
松鼠爱吃饼干
2021/10/14
1.1K0
Python图片爬取方法总结
对于图片爬取,最容易想到的是通过urllib库或者requests库实现。具体两种方法的实现如下:
py3study
2020/01/03
1.3K0
用Python爬视频超级简单的!
这两天看到别人用Python下载视频,于是我也来试一下平时总是喜欢看内涵段子。这里正好有内涵视频:http://neihanshequ.com/video/
龙哥
2018/10/22
4.9K0
用Python爬视频超级简单的!
Python爬取图片+百度人脸检测过滤高颜值美女
pexels网站提供了大量贴图,从中搜索美女图片,编写爬虫进行下载,下载后图片中除了女人外,还包含男人,风景、静物和动物,调用百度人脸检测模块识别检测,将其中颜值大于60分的美女保存到另外一个文件夹。爬取图片共计1251张,最后过滤出的美女共计287张。上代码:
python学习教程
2020/06/01
1.1K0
Python爬取图片+百度人脸检测过滤高颜值美女
用Python爬取手机壁纸,太简单了吧!
在Python爬虫的学习过程中,爬取图片几乎是每个初学者都练习过的项目,比如我们之前就分享过:如何用Python快速爬取小姐姐的美图?
快学Python
2022/11/28
8430
用Python爬取手机壁纸,太简单了吧!
推荐阅读
相关推荐
python爬虫学习之爬取5K分辨率超清唯美壁纸
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文