简单介绍
像壁纸之类的文章还从来没有推荐过,主要是觉得这类东西每个人的要求和喜欢的类型又不一样,喜欢什么网上就搜什么壁纸。
但是更多人喜欢折中的一种壁纸,就是怎么看怎么舒服的那种。如果要安利一个壁纸网站的话,那么不管你问我多少遍,我都强烈推荐 Wallhaven.cc 。
收藏一下
也许你之前还在通过百度搜索壁纸,或者是使用国内的一些图片资源站,相信你也曾被那些复杂的积分制度或者收费方式折磨不堪,但有了 Wallhaven 之后,你所要做的就是把这个网站收藏好就行了。
Wallhaven 号称「网上最好的壁纸」,这是一点也不谦虚,真是「天生骄傲」,口气这么大,当然肯定有它骄傲的地方。
它界面简洁,没有任何广告。虽然这上面的壁纸基本都是用户上传的,但绝对都是一等一的优质高分辨率壁纸。
类别筛选
在你打开这个网站之后,你会发现一个幸福的烦恼:如此海量优质的壁纸,怎么样才能找到你自己中意的壁纸呢?
首先,在首页点击这个Toplist
可以看到 Wallhaven 按照 General,Anime,People(一般,动漫,人物)把壁纸分成了三种,这只是最基本的分类。
同时还提供了 SFW、Sketchy、NSFW 3 个类别,是什么意思呢?这里不喊课代表了,我直接给大家解释一下,SFW 就是 Safe for Work 的缩写,即为适合工作场合的壁纸,有适合工作场合看的,自然就会有不适合上班看的 NSFW,至于 Sketchy 就是介于两者之间的程度。
这样分类没毛病,在家里的电脑里你怎么设置壁纸都行,但是在办公室,边工作边看着电脑屏幕流鼻血也不太合适,你懂的。不得不说,这种给壁纸图片「分级」的骚操作,可以让我们更方便找到想要的壁纸图片。
在搜索框下方,有一系列标签,可以根据你喜欢的标签来进行选择。如果上面提供的标签还不够,那就点击更多标签,会有更丰富的标签,还会显示该标签下有多少张壁纸以及浏览数。
要知道在壁纸网站中,收录海量壁纸并不稀奇,真正的难点在于有没有一套高效的分类和检索机制,这样才能便于快速锁定自己心仪的壁纸。
给爷Python爬
下面我想针对Favorites排序来个页面图片搜集给电脑设置幻灯片壁纸,因此写个Python代码爬取img,主要是一张张保存精美图片太费劲了。
大体思路就是先查看html的整体架构,看到图片集合都是前面链接固定,然后下拉就后面跟着page=x,之后再看,可以看到所有图片都是 https://wallhaven.cc/w/xxxxxx 的格式,最后图片真实地址https://w.wallhaven.cc/full/aa/wallhaven-aaxxxx.png 长这样,那就好办了。
选用BeautifulSoup库,可以从HTML文件中提取数据,定义getpages_HTML函数连接wallhaven壁纸页面,定义getURL获取href,定义parseHTML函数,解析html页面里的img src标签,返回.jpg文件下载链接,getDownload函数下载到自定义Path下,主函数开始定义Path、url,输入Page页码,如果第一页就不加page参数直接把第一页全部图片保存,不然就循环1到该页保存图片地址。最后循环存下的地址下载。
import requests
from bs4 import BeautifulSoup
import os
def getpages_HTML(url,info = None):#连接wallhaven随机壁纸页面
try:
r = requests.request('GET',url = url,params = info)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
print("Failed")
def getURL(html,lst):
soup = BeautifulSoup(html,'html.parser')
trs = soup.find_all('a')
for tr in trs:
if tr.get('href') is not None and len(tr.get('href')) == 29:
lst.append(tr.get('href'))#提取href
def parseHTML(html):
soup = BeautifulSoup(html,'html.parser')
img = soup.find_all('img')#解析html页面里的img src标签
src = img[2].get('src')
return src #返回.jpg文件下载链接
def getDownload(url,path):
try:
r = requests.get(url)
r.raise_for_status()
with open(path,'wb')as f:
f.write(r.content)
except:
return "Failed"
if __name__ == '__main__':
pic_dir = 'C://Users//Administrator//Pictures//wallpapers'
if not os.path.exists(pic_dir):
os.mkdir(pic_dir)
infoDict = {}
lst = []
page_num = int(input('plese input the page number:'))
url = 'https://wallhaven.cc/search?categories=110&purity=100&sorting=favorites&order=desc'
if page_num == 1:#对输入数字进行判断
infoDict['page'] = 1
html = getpages_HTML(url = url,info = infoDict)
getURL(html,lst)
else:
for i in range(1,page_num + 1):
infoDict['page'] = i
html = getpages_HTML(url = url,info = infoDict)
getURL(html,lst)
for i in range(len(lst)):
pic_html = getpages_HTML(lst[i],info = None)
downloader = parseHTML(pic_html)
path = pic_dir + '//' + lst[i][-6:] + '.jpg'
getDownload(downloader,path)
mark
特别好,我喜欢它可以选定尺寸下载
牛逼,佩服
卧槽!!!马了马了,感谢!
不错啊 4k 壁纸挺多的。还免费
我文章还没写完,你就来啦
刚打开就看到了,这次总算可以给我的4K大屏换几张壁纸了,国内的4K资源免费的太少