Python爬虫教程-爬取5K分辨率超清唯美壁纸源码

简介

壁纸的选择其实很大程度上能看出电脑主人的内心世界,有的人喜欢风景,有的人喜欢星空,有的人喜欢美女,有的人喜欢动物。然而,终究有一天你已经产生审美疲劳了,但你下定决定要换壁纸的时候,又发现网上的壁纸要么分辨率低,要么带有水印。

项目源码

  1 # -*- coding:utf-8 -*-
  2
  3 from requests import get
  4 from filetype import guess
  5 from os import rename
  6 from os import makedirs
  7 from os.path import exists
  8 from json import loads
  9 from contextlib import closing
 10
 11
 12 # 文件下载器
 13 def Down_load(file_url, file_full_name, now_photo_count, all_photo_count):
 14     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"}
 15
 16     # 开始下载图片
 17     with closing(get(file_url, headers=headers, stream=True)) as response:
 18         chunk_size = 1024  # 单次请求最大值
 19         content_size = int(response.headers[‘content-length‘])  # 文件总大小
 20         data_count = 0 # 当前已传输的大小
 21         with open(file_full_name, "wb") as file:
 22             for data in response.iter_content(chunk_size=chunk_size):
 23                 file.write(data)
 24                 done_block = int((data_count / content_size) * 50)
 25                 data_count = data_count + len(data)
 26                 now_jd = (data_count / content_size) * 100
 27                 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=" ")
 28
 29     # 下载完图片后获取图片扩展名,并为其增加扩展名
 30     file_type = guess(file_full_name)
 31     rename(file_full_name, file_full_name + ‘.‘ + file_type.extension)
 32
 33
 34
 35 # 爬取不同类型图片
 36 def crawler_photo(type_id, photo_count):
 37
 38     # 最新 1, 最热 2, 女生 3, 星空 4
 39     if(type_id == 1):
 40         url = ‘https://service.paper.meiyuan.in/api/v2/columns/flow/5c68ffb9463b7fbfe72b0db0?page=1&per_page=‘ + str(photo_count)
 41     elif(type_id == 2):
 42         url = ‘https://service.paper.meiyuan.in/api/v2/columns/flow/5c69251c9b1c011c41bb97be?page=1&per_page=‘ + str(photo_count)
 43     elif(type_id == 3):
 44         url = ‘https://service.paper.meiyuan.in/api/v2/columns/flow/5c81087e6aee28c541eefc26?page=1&per_page=‘ + str(photo_count)
 45     elif(type_id == 4):
 46         url = ‘https://service.paper.meiyuan.in/api/v2/columns/flow/5c81f64c96fad8fe211f5367?page=1&per_page=‘ + str(photo_count)
 47
 48     # 获取图片列表数据
 49     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"}
 50     respond = get(url, headers=headers)
 51     photo_data = loads(respond.content)
 52
 53     # 已经下载的图片张数
 54     now_photo_count = 1
 55
 56     # 所有图片张数
 57     all_photo_count = len(photo_data)
 58
 59     # 开始下载并保存5K分辨率壁纸
 60     for photo in photo_data:
 61
 62         # 创建一个文件夹存放我们下载的图片
 63         if not exists(‘./‘ + str(type_id)):
 64             makedirs(‘./‘ + str(type_id))
 65
 66         # 准备下载的图片链接
 67         file_url = photo[‘urls‘][‘raw‘]
 68
 69         # 准备下载的图片名称,不包含扩展名
 70         file_name_only = file_url.split(‘/‘)
 71         file_name_only = file_name_only[len(file_name_only) -1]
 72
 73         # 准备保存到本地的完整路径
 74         file_full_name = ‘./‘ + str(type_id) + ‘/‘ + file_name_only
 75
 76         # 开始下载图片
 77         Down_load(file_url, file_full_name, now_photo_count, all_photo_count)
 78         now_photo_count = now_photo_count + 1
 79
 80
 81
 82 if __name__ == ‘__main__‘:
 83
 84     # 最新 1, 最热 2, 女生 3, 星空 4
 85     # 爬取类型为3的图片(女生),一共准备爬取20000张
 86     wall_paper_id = 1
 87     wall_paper_count = 10
 88     while(True):
 89
 90         # 换行符
 91         print(‘\n\n‘)
 92
 93         # 选择壁纸类型
 94         wall_paper_id = input("壁纸类型:最新壁纸 1, 最热壁纸 2, 女生壁纸 3, 星空壁纸 4\n请输入编号以便选择5K超清壁纸类型:")
 95         # 判断输入是否正确
 96         while(wall_paper_id  != str(1) and wall_paper_id  != str(2) and wall_paper_id  != str(3) and wall_paper_id  != str(4)):
 97             wall_paper_id = input("壁纸类型:最新壁纸 1, 最热壁纸 2, 女生壁纸 3, 星空壁纸 4\n请输入编号以便选择5K超清壁纸类型:")
 98
 99
100         # 选择要下载的壁纸数量
101         wall_paper_count = input("请输入要下载的5K超清壁纸的数量:")
102         # 判断输入是否正确
103         while(int(wall_paper_count) <= 0):
104             wall_paper_count = input("请输入要下载的5K超清壁纸的数量:")
105
106
107         # 开始爬取5K高清壁纸
108         print("正在下载5K超清壁纸,请稍等……")
109         crawler_photo(int(wall_paper_id), int(wall_paper_count))
110         print(‘\n下载5K高清壁纸成功!‘)

初学者对Python的概念模糊不清的,Python能做什么,学的时候该按照什么线路去学习,学完往哪方面发展,想深入了解,详情可以复制有道云笔记链接到浏览器打开了解:http://note.youdao.com/noteshare?id=e4fa02e7b56d7909a27674cdb3da08aa

学习视频资料、开发工具等都有免费分享,还有专业的老师答疑

原文地址:https://www.cnblogs.com/ITbiancheng/p/12273240.html

时间: 2024-11-05 23:32:11

Python爬虫教程-爬取5K分辨率超清唯美壁纸源码的相关文章

最最简单的python爬虫教程--爬取百度百科案例

from bs4 import BeautifulSoupfrom urllib.request import urlopenimport reimport randombase_url = "https://baike.baidu.com"#导入相关的包 his = ["/item/%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB/5162711"]#初始化url#循环选取20百度百科的数据for i in range(20):url =

[Python爬虫] Selenium爬取新浪微博客户端用户信息、热点话题及评论 (上)

一. 文章介绍 前一篇文章"[python爬虫] Selenium爬取新浪微博内容及用户信息"简单讲述了如何爬取新浪微博手机端用户信息和微博信息. 用户信息:包括用户ID.用户名.微博数.粉丝数.关注数等. 微博信息:包括转发或原创.点赞数.转发数.评论数.发布时间.微博内容等. 它主要通过从文本txt中读取用户id,通过"URL+用户ID" 访问个人网站,如柳岩: http://weibo.cn/guangxianliuya 因为手机端数据相对精简简单,所以采用输

[Python爬虫] Selenium爬取新浪微博移动端热点话题及评论 (下)

这篇文章主要讲述了使用python+selenium爬取新浪微博的热点话题和评论信息.其中使用该爬虫的缺点是效率极低,傻瓜式的爬虫,不能并行执行等,但是它的优点是采用分析DOM树结构分析网页源码并进行信息爬取,同时它可以通过浏览器进行爬取中间过程的演示及验证码的输入.这篇文章对爬虫的详细过程就不再论述了,主要是提供可运行的代码和运行截图即可.希望文章对你有所帮助吧~ 参考文章 [python爬虫] Selenium爬取新浪微博内容及用户信息 [Python爬虫] Selenium爬取新浪微博客户

Python爬虫入门 | 爬取豆瓣电影信息

这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬虫的大门啦~好啦,正式开始我们的第二节课<爬取豆瓣电影信息>吧!啦啦哩啦啦,都看黑板~1. 爬虫原理1.1 爬虫基本原理听了那么多的爬虫,到底什么是爬虫?爬虫又是如何工作的呢?我们先从"爬虫原理"说起.爬虫又称为网页蜘蛛,是一种程序或脚本.但重点在于:它能够按照一定的规则,自动

Python爬虫之——爬取妹子图片

首先声明,本博文为我原创,但是我在看了 崔庆才 博主的文章之后加以自己的实际处理的所得,感谢 崔庆才 博主,写的爬虫文章都好,博主文章地址:http://cuiqingcai.com/3179.html 环境:python 3.6 注:单线程版以在安卓的Qpython(py2.7)上运行成功 第三方库 requests:解析url beautifulsoup4:不会正则表达式童鞋的福音,可以容易的提取到html文件中各种标签及其属性 安装方法: pip install requests pip

[python爬虫] Selenium爬取CSDN博客摘要及问题

本文主要是采用Selenium来爬取CSDN的博文摘要,为后面对CSDN的热点技术.近几年专家发表的博客作数据分析.由于采用BeautifulSoup爬取该网站会报错"HTTPError: Forbidden",所以作者采用Selenium爬取.同时,在爬取过程中遇到了局部动态更新的问题,无法定位换页的问题,作者采用Firebug进行分析,也希望读者提出更好的方法.代码下载地址: 一. CSDN博客网站分析及问题 本文主要爬取CSDN专家的博客,因为专家的论文水平相对高点,同时专栏较多

Python爬虫之爬取煎蛋网妹子图

这篇文章通过简单的Python爬虫(未使用框架,仅供娱乐)获取并下载煎蛋网妹子图指定页面或全部图片,并将图片下载到磁盘. 首先导入模块:urllib.request.re.os import urllib.request import re import os urllib.request模块用于获取HTML页面数据 re模块用于通过正则表达式解析并截取HTML页面图片url os模块用于文件夹相关操作 代码不多,直接贴出来,代码解释在注释中: def crawl_jiandan(page, p

[python爬虫] Selenium爬取内容并存储至MySQL数据库

前面我通过一篇文章讲述了如何爬取CSDN的博客摘要等信息.通常,在使用Selenium爬虫爬取数据后,需要存储在TXT文本中,但是这是很难进行数据处理和数据分析的.这篇文章主要讲述通过Selenium爬取我的个人博客信息,然后存储在数据库MySQL中,以便对数据进行分析,比如分析哪个时间段发表的博客多.结合WordCloud分析文章的主题.文章阅读量排名等.        这是一篇基础性的文章,希望对您有所帮助,如果文章中出现错误或不足之处,还请海涵.下一篇文章会简单讲解数据分析的过程. 一.

Python爬虫项目--爬取链家热门城市新房

本次实战是利用爬虫爬取链家的新房(声明: 内容仅用于学习交流, 请勿用作商业用途) 环境 win8, python 3.7, pycharm 正文 1. 目标网站分析 通过分析, 找出相关url, 确定请求方式, 是否存在js加密等. 2. 新建scrapy项目 1. 在cmd命令行窗口中输入以下命令, 创建lianjia项目 scrapy startproject lianjia 2. 在cmd中进入lianjia文件中, 创建Spider文件 cd lianjia scrapy genspi