这段代码使用 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 下载大量精美壁纸。需要注意的是,使用该代码下载图片时,请遵守相关法律法规,避免侵犯版权。

Python爬取Wallhaven壁纸网站 - 批量下载精美壁纸

原文地址: https://www.cveoy.top/t/topic/n0kY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录