Python爬取Wallhaven壁纸网站 - 批量下载精美壁纸
这段代码使用 Python 和 BeautifulSoup 库,实现从 Wallhaven 网站批量下载壁纸的功能。用户可以自定义关键词、起始页码和结束页码,方便快捷地获取大量精美壁纸。
import requests
import os
from bs4 import BeautifulSoup
ab = 1
url = 'https://wallhaven.cc/search'
# 如果不存在bizhi文件夹,创建壁纸文件夹
if not os.path.exists('bizhi'):
os.mkdir('bizhi')
keyword = input('请输入你要爬取的壁纸关键词:')
start_page = int(input("起始页码:"))
end_page = int(int(input("结束页码:")) + 1)
for i in range(start_page, end_page):
data = {
'q': keyword,
'sorting': 'random',
'ref': 'fp',
'seed': 'pDRjMC',
'page': i,
}
# 请求搜索链接
resp = requests.get(url=url, params=data)
# 解析搜索页面
page = BeautifulSoup(resp.text, 'html.parser')
# 查找图片链接
urls = page.find_all("a", attrs={'class': 'preview'})
for n_url in urls:
href = n_url.get('href')
# 请求图片链接
resp1 = requests.get(url=href)
# 解析图片页面
page1 = BeautifulSoup(resp1.text, 'html.parser')
img = page1.find('img', attrs={"id": "wallpaper"})
# 查找图片下载链接
img_url = img.get('src')
# 下载图片#
resp2 = requests.get(url=img_url).content
# 保存图片
with open(f'./bizhi/{ab}.jpg', 'wb') as f:
f.write(resp2)
ab += 1
print('爬取完毕')
这段代码首先引入了 requests、os 和 BeautifulSoup 库。然后定义了几个变量,包括:
- ab: 用于保存图片计数。
- url: Wallhaven 搜索页面的 URL。
- keyword: 用户输入的壁纸关键词。
- start_page: 用户输入的起始页码。
- end_page: 用户输入的结束页码。
接下来,代码判断 'bizhi' 文件夹是否存在,如果不存在则创建该文件夹。然后代码使用一个循环遍历每个页码,并向 Wallhaven 搜索页面发送请求。请求参数包括关键词、排序方式、引用来源、随机种子和页码。
代码使用 BeautifulSoup 解析搜索页面,找到所有图片链接,然后再次发送请求获取每个图片页面。解析图片页面后找到图片的下载链接,并发送请求获取图片数据。最后代码将图片保存到 'bizhi' 文件夹中。
这段代码可以帮助用户快速、方便地从 Wallhaven 下载大量精美壁纸。需要注意的是,使用该代码下载图片时,请遵守相关法律法规,避免侵犯版权。
原文地址: https://www.cveoy.top/t/topic/n0kY 著作权归作者所有。请勿转载和采集!