本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

以下文章来源于腾讯云 作者: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超清壁纸图片,手把手教你跟我一起爬!相关推荐

  1. 4k超清壁纸APP抓包获取所有壁纸下载地址

    4k超清壁纸APP抓包获取所有壁纸下载地址   Lan   2020-05-09 10:38   288 人阅读  0 条评论 额,最近发现手机壁纸似乎有段时间没换了,刚好又看到网上有一个APP叫做4 ...

  2. Python爬虫新手入门教学(十):爬取彼岸4K超清壁纸

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...

  3. 【Python】采集3万张4K超清壁纸,实现定时自动更换桌面壁纸脚本(内含完整源码)

    前言 嗨喽!大家好,这里是魔王~ 发现一个不错的壁纸网站,里面都是超高清的图片 所以,我打算把这些壁纸都采集下来,然后在做一个自动跟换桌面壁纸的脚本,这样基本上你一年都可以每天都有不重复桌面了 先来看 ...

  4. 编写python代码获取4k高清壁纸

    Huskiesir最近在研究python爬虫大约俩周了吧,由于比较懒,也没把具体研究的过程与经验写下来,实在是一大憾事.这次直接上干货,代码送给大家: import re import request ...

  5. 【Python实现定时自动更换桌面壁纸脚本】采集3万张4K超清壁纸,让你的壁纸一年都不重复

    前言 发现一个不错的壁纸网站,里面都是超高清的图片 所以,我打算把这些壁纸都采集下来,然后在做一个自动跟换桌面壁纸的脚本,这样基本上你一年都可以每天都有不重复桌面了 目标地址 先来看看我们这次的受害者 ...

  6. Python爬虫案例:批量下载超清画质手机壁纸

    目录 前言 开发环境 模块使用 基本流程: 一. 数据来源分析 二. 代码实现步骤: 完整代码 1. 发送请求 2. 获取数据 3. 解析数据 4. 保存数据 效果演示 前言 开发环境 Python ...

  7. Python爬虫 下载彼岸图网高清壁纸

    学习了爬虫之后就迫不及待自己写了个爬虫,作用是爬取彼岸图1080p壁纸.因为是刚入门代码可能会比较乱,而且我中途遇到的一些问题都是通过最简单的方式去解决的,所以代码行数也比较多,望见谅. 下载部分如下 ...

  8. php超清壁纸,美得让人不能呼吸、4K超清壁纸3840×2160p超多图[小水管勿进]

    203940q90h3jz0ki3z9b6j.jpg (2.09 MB, 下载次数: 3) 2017-1-16 20:39 上传 " {8 @6 b) _9 n5 f1 p: @+ k9 r ...

  9. Python爬虫新手入门教学(十三):爬取高质量超清壁纸

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...

最新文章

  1. UOJ #592. 投放点的选择
  2. eclipse juno_放弃Eclipse Juno
  3. EE JSP:Servlet的反向外套
  4. C++静态类型成员变量的初始化顺序(单例模式)
  5. python进群_Manim-python 进群问题之解答
  6. python hist2d_使用hist2d在matplotlib中创建一个对数线性图
  7. Python 字符串(三)-字符串操作实例(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
  8. [BZOJ4756]Promotion Counting
  9. 46. 求1+2+3+...+n(C++实现)
  10. 小菜找实习——阿里3月20日笔试第二题
  11. 计算机硬件专业实习日志,计算机维护实习日记总汇
  12. 《哲学100问》读书感想:为什么要做一个道德的人
  13. 【前端】解决盒子被撑大问题 box-sizing
  14. Python爬虫:最牛逼的 selenium爬取方式!
  15. 热点追踪 | 数据,想说爱你不容易
  16. 回顾维乐VELO创始人余彩云漫漫创新路
  17. 599. 两个列表的最小索引总和
  18. 船员英语老师是面试还是计算机答题,船员英语考试、评估技巧
  19. Windows下mmap的等价实现
  20. 【T3】自定义转账设置消失

热门文章

  1. 在Wireshark中按进程过滤
  2. 日常听歌哪款蓝牙耳机音质好?2021国产高性价比高音质蓝牙耳机分享
  3. Apple Developer文档笔记(一)AppKit App Structure
  4. winForm欢迎界面
  5. 电影《满城尽带黄金甲》周杰伦接受了新浪娱乐独家对话
  6. 关于H5中的video/video标签的用法总结
  7. softlayer iso_在SoftLayer上使用Open edX构建在线学习平台
  8. 表单验证 trigger
  9. Ubuntu系统崩溃与修复
  10. 广东中考数学不允许使用计算机,上070821对苏州市数学中考两次禁用计算器的反思终稿.doc...