Python爬虫教你获取4K超清壁纸图片,手把手教你跟我一起爬!
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理
以下文章来源于腾讯云 作者:Python进阶者
( 想要学习Python?Python学习交流群:1039649593,满足你的需求,资料都已经上传群文件流,可以自行下载!还有海量最新2020python学习资料。 )
/1 前言/
想要电脑换个壁纸时都特别苦恼,因为百度搜到那些壁纸也就是分辨率达到了壁纸的水准。可是里面图片的质量嘛,实在是不忍直视…。而有些4K高清的壁纸大多是有版权的 ,这就使我们想要获取高清的图片,变得非常的困难。
wallhaven 网站是无版权的4K壁纸 ,而且主题丰富(创意、摄影、人物、动漫、绘画、视觉),今天教大家如何去批量的去下载wallhaven4K原图。
/2 项目目标/
获取对应的4K壁纸,并批量下载保存在文件夹。
/3 涉及的库和网站/
软件:PyCharm
需要用到的库:requests、lxml、fake_useragent、time
先列出网址,如下所示:
https://wallhaven.cc/search?q=id%3A65348&page={}
网址city=%E5%B9%BF%E5%B7%9E指的是广州这个城市、pn指的是页数。
/4 项目分析/
滑动鼠标观察下一页的网址的变化:
https://wallhaven.cc/search?q=id%3A65348&page=1
https://wallhaven.cc/search?q=id%3A65348&page=2
https://wallhaven.cc/search?q=id%3A65348&page=3
滑动下一页时,每增加一页page自增加1,用{}代替变换的变量,再用for循环遍历这网址,实现多个网址请求。
/5 具体实现/
1、定义一个class类继承object,定义init方法继承self,主函数main继承self。导入需要的库和网址。
import requests
from lxml import etree
from fake_useragent import UserAgent
import timeclass wallhaven(object):def __init__(self):self.url = "https://wallhaven.cc/search?q=id%3A65348&page={}"def main(self):passif __name__ == '__main__':imageSpider = wallhaven()imageSpider.main()
2、fake_useragent模块实现随机产生UserAgent。
ua = UserAgent(verify_ssl=False)for i in range(1, 50):self.headers = {'User-Agent': ua.random,}
3、for循环实现多网址访问。
startPage = int(input("起始页:"))
endPage = int(input("终止页:"))
for page in range(startPage, endPage + 1):url = self.url.format(page)
4、发送请求 获取响应。
'''发送请求 获取响应'''def get_page(self, url):res = requests.get(url=url, headers=self.headers)html = res.content.decode("utf-8")return html
5、解析一级页面,得到二级页面的 href 地址。
def parse_page(self, html):parse_html = etree.HTML(html)image_src_list = parse_html.xpath('//figure//a/@href')
6、遍历二级页面网址,发生请求、解析数据。找到相对于的图片地址。
html1 = self.get_page(i) # 二级页面发生请求
parse_html1 = etree.HTML(html1)
# print(parse_html1)
filename = parse_html1.xpath('//div[@class="scrollbox"]//img/@src')
# print(filename)
7、获取到的图片地址,发生请求,保存。
# 图片地址发生请求
for img in filename:dirname = "./图/" + img[32:] '''可修改图片保存的地址'''print(dirname)html2 = requests.get(url=img, headers=self.headers).contentwith open(dirname, 'wb') as f:f.write(html2)print("%s下载成功" % filename)
8、调用方法,实现功能。
html = self.get_page(url)
self.parse_page(html)
优化:设置延时。(防止ip被封)。time.sleep(1.4) """时间延时"""
/6 效果展示/
1、点击绿色按钮运行,将结果显示在控制台,如下图所示。输起始页和终止页,回车。
2、图片下载成功控制台输出。
3、批量保存。
4、验证4K。(点击图片打开属性)
/7 小结/
1、不建议抓取太多数据,容易对服务器造成负载,浅尝辄止即可。
2、本文基于Python网络爬虫,利用爬虫库,获取wallhaven4K壁纸。
3、4K的壁纸下载时可能会有点缓慢,请大家耐心的等待。如果图片的地址不一样,需要自己修改一下图片的保存的地址。
4、大家也可以在wallhaven网址上,寻找自己喜欢图片,按照操作步骤,自己尝试去做。自己实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。
5、如果本文源码的小伙伴,请在后台回复“4K壁纸”四个字进行获取,觉得不错,记得给个Star噢~
Python爬虫教你获取4K超清壁纸图片,手把手教你跟我一起爬!相关推荐
- 4k超清壁纸APP抓包获取所有壁纸下载地址
4k超清壁纸APP抓包获取所有壁纸下载地址 Lan 2020-05-09 10:38 288 人阅读 0 条评论 额,最近发现手机壁纸似乎有段时间没换了,刚好又看到网上有一个APP叫做4 ...
- Python爬虫新手入门教学(十):爬取彼岸4K超清壁纸
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...
- 【Python】采集3万张4K超清壁纸,实现定时自动更换桌面壁纸脚本(内含完整源码)
前言 嗨喽!大家好,这里是魔王~ 发现一个不错的壁纸网站,里面都是超高清的图片 所以,我打算把这些壁纸都采集下来,然后在做一个自动跟换桌面壁纸的脚本,这样基本上你一年都可以每天都有不重复桌面了 先来看 ...
- 编写python代码获取4k高清壁纸
Huskiesir最近在研究python爬虫大约俩周了吧,由于比较懒,也没把具体研究的过程与经验写下来,实在是一大憾事.这次直接上干货,代码送给大家: import re import request ...
- 【Python实现定时自动更换桌面壁纸脚本】采集3万张4K超清壁纸,让你的壁纸一年都不重复
前言 发现一个不错的壁纸网站,里面都是超高清的图片 所以,我打算把这些壁纸都采集下来,然后在做一个自动跟换桌面壁纸的脚本,这样基本上你一年都可以每天都有不重复桌面了 目标地址 先来看看我们这次的受害者 ...
- Python爬虫案例:批量下载超清画质手机壁纸
目录 前言 开发环境 模块使用 基本流程: 一. 数据来源分析 二. 代码实现步骤: 完整代码 1. 发送请求 2. 获取数据 3. 解析数据 4. 保存数据 效果演示 前言 开发环境 Python ...
- Python爬虫 下载彼岸图网高清壁纸
学习了爬虫之后就迫不及待自己写了个爬虫,作用是爬取彼岸图1080p壁纸.因为是刚入门代码可能会比较乱,而且我中途遇到的一些问题都是通过最简单的方式去解决的,所以代码行数也比较多,望见谅. 下载部分如下 ...
- php超清壁纸,美得让人不能呼吸、4K超清壁纸3840×2160p超多图[小水管勿进]
203940q90h3jz0ki3z9b6j.jpg (2.09 MB, 下载次数: 3) 2017-1-16 20:39 上传 " {8 @6 b) _9 n5 f1 p: @+ k9 r ...
- Python爬虫新手入门教学(十三):爬取高质量超清壁纸
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...
最新文章
- UOJ #592. 投放点的选择
- eclipse juno_放弃Eclipse Juno
- EE JSP:Servlet的反向外套
- C++静态类型成员变量的初始化顺序(单例模式)
- python进群_Manim-python 进群问题之解答
- python hist2d_使用hist2d在matplotlib中创建一个对数线性图
- Python 字符串(三)-字符串操作实例(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
- [BZOJ4756]Promotion Counting
- 46. 求1+2+3+...+n(C++实现)
- 小菜找实习——阿里3月20日笔试第二题
- 计算机硬件专业实习日志,计算机维护实习日记总汇
- 《哲学100问》读书感想:为什么要做一个道德的人
- 【前端】解决盒子被撑大问题 box-sizing
- Python爬虫:最牛逼的 selenium爬取方式!
- 热点追踪 | 数据,想说爱你不容易
- 回顾维乐VELO创始人余彩云漫漫创新路
- 599. 两个列表的最小索引总和
- 船员英语老师是面试还是计算机答题,船员英语考试、评估技巧
- Windows下mmap的等价实现
- 【T3】自定义转账设置消失
热门文章
- 在Wireshark中按进程过滤
- 日常听歌哪款蓝牙耳机音质好?2021国产高性价比高音质蓝牙耳机分享
- Apple Developer文档笔记(一)AppKit App Structure
- winForm欢迎界面
- 电影《满城尽带黄金甲》周杰伦接受了新浪娱乐独家对话
- 关于H5中的video/video标签的用法总结
- softlayer iso_在SoftLayer上使用Open edX构建在线学习平台
- 表单验证 trigger
- Ubuntu系统崩溃与修复
- 广东中考数学不允许使用计算机,上070821对苏州市数学中考两次禁用计算器的反思终稿.doc...