Python爬取Wallpaper全站高清壁纸脚本

#推荐
Python爬取Wallpaper全站高清壁纸脚本

2026-03-17 2
[!--dianshu--] C币
VIP折扣
    折扣详情
  • 体验VIP会员

    免费

  • 月卡VIP会员

    免费

  • 年卡VIP会员

    免费

  • 永久VIP会员

    免费

查看演示
下载不了?请联系网站客服提交链接错误!
TAG标签: 安装指导

#推荐
Python爬取Wallpaper全站高清壁纸脚本

2026-03-17 php教程 9999 2
郑重承诺丨总裁主题提供安全交易、信息保真!
TAG标签:
安装指导
[!--dianshu--] C币
VIP权限详情
    会员权限详情
  • 体验VIP会员

    免费

  • 月卡VIP会员

    免费

  • 年卡VIP会员

    免费

  • 永久VIP会员

    免费

开通VIP尊享优惠特权
立即下载 等待添加 升级会员 最新活动
微信扫码咨询 微信扫码咨询

联系电话:18888888888

进入TA的商铺 联系官方客服
详情介绍

欢迎!我白天是个邮递员,晚上就是个有抱负的演员。这是我的网站。我住在天朝的帝都,有条叫做Jack的狗。

话不多说直接上代码,都有注释,如果有不懂的可以提出来或者有更好方案也可以提出来,大家一起学习。

#!/usr/bin/env python3# -*- coding: utf-8 -*-import requestsimport urllib.parsefrom lxml import etreeimport reimport os# 自定义错误class Error(Exception):    def __init__(self, message):        self.message = messageclass Wallpaper:    """    0x0 所有分辨率    1920x1080    """    def __init__(self, url, path, page, min_resolution):        self.url = url        self.path = path        self.params = {            "page": page        }        self.min_resolution = min_resolution        # post请求参数        self.data = {            # 分页            "view": "paged",            # 分辨率            "min_resolution": min_resolution,            # 分辨率等于还是至少是 可以大于等于            "resolution_equals": "=",            # 排序方法            # newest 最新上传            # rating 最多赞数            "sort": "newest",        }    # 创建文件夹    @staticmethod    def create_dir(path):        if not os.path.exists(path):            os.makedirs(path)        else:            return "文件夹已存在"    # 返回图片类型的文件夹名称, 根据链接的不同类型    def get_folder_name(self):        # 标签链接名称获取 https://wall.alphacoders.com/tag/ahri-(league-of-legends)-wallpapers?lang=Chinese        pattern = r"tag/([\w-]+)-(.*)\?lang=Chinese"        match = re.search(pattern, self.url)        if match:            content1 = match.group(1)  # 获取第一个捕获组的内容            content2 = match.group(2)  # 获取第二个捕获组的内容            image_dir_name = content1 + content2            return image_dir_name        # 分类链接名称获取 https://wall.alphacoders.com/by_sub_category.php?id=169908&name=%E8%8B%B1%E9%9B%84%E8%81%94%E7%9B%9F+%E5%A3%81%E7%BA%B8&lang=Chinese        elif not match:            try:                params = {}                url_params = self.url.split("?")[1]                temp = url_params.split("&")                for param in temp:                    key = param.split("=")[0]                    value = param.split("=")[1]                    params[key] = value                name = params.get("name", None)                # 获取分类名称                if name is not None:                    image_dir_name = urllib.parse.unquote(name.split("+")[0])                    return image_dir_name                # 获取不到名称名称,那链接中的就是这种类型 https://wall.alphacoders.com/by_resolution.php?w=3840&h=2160&lang=Chinese                else:                    w = params.get("w")                    h = params.get("h")                    image_dir_name = w + "x" + h                    return image_dir_name            # 获取索引名称 https://wall.alphacoders.com/search.php?search=landscape&lang=Chinese            except AttributeError:                pattern = r"search=([^&]+)&lang=Chinese"                match = re.search(pattern, self.url)                if match:                    image_dir_name = match.group(1)                    return image_dir_name    # 获取每一页的所有图片页面的图片链接    def get_image_urls(self):        url = "https://wall.alphacoders.com"        response = requests.post(self.url, params=self.params, data=self.data, allow_redirects=False)        # 超出页数会重定向到最大的页面,进行判断,防止重复爬取        if response.status_code == 200:            html = etree.HTML(response.text)            image_page_params = html.xpath(                '//*[@id="page_container"]//div//div[@class="thumb-container"]//div[@class="boxgrid"]//@href')            # 判断当前页面有没有图片            if len(image_page_params) == 0:                raise Error("获取不到当前页码的图片,请检查页码有否有效!")            else:                result = []                for image_page_param in image_page_params:                    image_page_url = url + image_page_param                    response_image = requests.get(image_page_url).text                    html = etree.HTML(response_image)                    image_urls = html.xpath("/html/body/div[2]/div[2]/div[2]/div[1]/img//@src")                    # 这里可以用推导式                    for i in image_urls:                        result.append(i)                return len(result), result        raise Error("获取不到当前页码的图片,请检查页码有否有效!")    def download_image(self):        mun = 0        error = 0        self.create_dir(self.path)        images_dir_name = self.get_folder_name()        images_mun, images_urls = self.get_image_urls()        for image_url in images_urls:            image_name_temp = re.search(r'https://[^/]+/[^/]+/(\d+)(\.png|\.jpg)', image_url)            # 匹配图片页面的图片是否是这两种格式,不是则跳过            if image_name_temp is not None:                image_name = image_name_temp.group(1)                # 判断图片是否重复下载                if not os.path.exists(os.path.join(self.path, images_dir_name, image_name + ".png")):                    self.create_dir(os.path.join(self.path, images_dir_name))                    download = requests.get(image_url).content                    with open(os.path.join(self.path, images_dir_name, image_name + ".png"), "wb") as f:                        f.write(download)                    print("图片 {} 下载完成,图片地址: {}".format(image_name, image_url))                    mun = mun + 1                    if mun == images_mun:                        print("当前页面图片下载完成, 一共 {} 张图片".format(mun))                else:                    print("已有图片: {}, 图片地址: {}".format(image_name, image_url))                    continue            else:                error = error + 1                print("下载失败 {} 张图片".format(error))if __name__ == '__main__':    url = input("请输入壁纸url! \n")    # 存放图片的文件夹    path = "images"    '''    分辨率    0x0 所有分辨率    '''    print("""        常用分辨率        1920x1080        2560x1440        2560x1600        3840x2160        5120x2880        7680x4320     """)    resolution = input("请输入需要下载的分辨率! \n")    # 200 可以修为自己想怕的最大页数,当链接所有页数大于或小于都能正常爬取链接的最大页数的图片,这里可以取一个折中的值    for page_num in range(1, 200):        print("正在下载第 {} 页的图片".format(page_num))        page_one = Wallpaper(url, path, str(page_num), resolution)        print(page_one.data)

下载地址
  • 提取密码
  • 1561
  • 解压密码
  • DWQwdewq
    立即免费下载
    Python爬取Wallpaper全站高清壁纸脚本
收藏 (15) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 ()

所有文章为演示数据,不提供下载地址,版权归原作者所有,仅提供演示效果!

CMS主题网 php教程 Python爬取Wallpaper全站高清壁纸脚本 /showinfo-48-75-0.html

我们只做高端Wordpress主题开发!

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用
查看详情

相关文章

帝国CMS二次开发 函数文件      PRinterror()/e/class/connect.phpline 132query()/e/class/db_sql.php line 10fetch1()/e/class/db_sql.php line 30fetch()/e/class/db_sql.php line 22checklevel()/e/class/functions.php line 3414insert_dolog()/e/class/functions.php line 3...
#推荐
2026-03-17 14 C币
帝国CMS判断当前数据库是      有时候我们需要判断数据库是否包含某字段,就可以使用下面这段SQL语法,$fr=$empire->fetch1("SELECT COUNT(*) AS column_exists FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '$infotb' AND COLUMN_NAME = 'money'");if($fr[&...
#推荐
2026-03-17 4 C币
帝国CMS8.0父子信息调用方      帝国CMS8.0版新增父子信息功能,让一条信息也能成为一个信息、一个栏目、一个专题、甚至一个网站。本文共有四个部分:一、父子信息功能使用流程。二、调用子信息:可以用索引灵动标签调用。三、父子信息列表访问地址的语法说明。四、进阶:调用当前父子信息...
#推荐
2026-03-17 4 C币
Python开发一个ChatGPT GU      1、首先去下载这个ChatGPT库,用到的库是这个:https://github.com/acheong08/ChatGPT2、安装这个ChatGPT库:pip3 install revChatGPT==0.0.a423、同目录还需要一个“config.json”:{    "session_token": "",    "cf_clearance": "",    "user_agent": "
#推荐
2026-03-17 4 C币
Playwright闲鱼智能监控机      项目介绍Playwright闲鱼智能监控机器人项目,基于 Playwright 和AI过滤分析的闲鱼多任务实时监控与智能分析工具,配备了功能完善的 Web 管理界面。可以实时按规则抓取闲鱼商品,垃圾佬的最爱。闲鱼智能监控机器人:https://github.com/dingyufei615/ai-goof...
#推荐
2026-03-17 3 C币
使用CSS Grid Generator拖      如果你是CSS小白,不会使用复杂的UI框架,又需要开发一个响应式网站,那么我的站长站推荐你使用CSS Grid Generator,直接拖拽网格,就可以立即生成响应式CSS代码,复制到自己项目即可使用。使用方法1、首先根据你的项目需求,生成指定的列数和网格数量2、然后拖到...
#推荐
2026-03-17 3 C币
过年给网站加一对灯笼CSS      马上快过年了,给网站加一对红灯笼,这样才有过年的喜庆劲儿。灯笼是代码生成的无需图片,而且还会摆动。使用方法把HTML下面代码粘贴到网页BODY内任意位子都可以。灯笼的位子可以微调.deng-box的left和right数值。CSS代码<!-- 灯笼代码 --><div class="de...
#推荐
2026-03-17 3 C币
ajax上传文件进度条功能示      ajax上传文件时,有时比较耗时,需要在界面上显示下进度信息,获取ajaxSettings中的xhr对象,为它的upload属性绑定progress事件的处理函数前端代码<!DOCTYPE html><html><head><meta charset="utf8"><title>test upload</title><!--jquery--><script src="h...
#推荐
2026-03-17 3 C币