吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 22388|回复: 203
收起左侧

[原创工具] 【Python】2k4k桌面壁纸自动更换

    [复制链接]
onlyclxy 发表于 2021-1-26 04:01
本帖最后由 onlyclxy 于 2021-5-13 20:18 编辑

有位兄弟给我这个代码做了个界面,大家可以去他那里下载界面版的.这边帖子就算是代码交流贴吧

https://www.52pojie.cn/thread-1369018-1-1.html




更新,兄弟们.. 今天小臂麻了一天.. 估计是长时间一个姿势颈椎变形压迫血管了. 先不这么拼的改代码了.界面的先随缘吧,我先锻炼一阵子.然后源代码放上来了.有学习的可以来借鉴.有想加界面的可以自己改.也希望自己能做抛砖引玉的那个人. 另外请不要过量爬人家网站, 当时我做这个目的,也是为了体验随机获得壁纸的新鲜感. 这些图有心找随便下好几T的,小弟保证你下一堆看都不带看的.人们就是有仓鼠症,喜欢屯东西.但是屯东西往往并不能提升好的体验. 以上



之前想找一个可以切换桌面壁纸的小程序. 但是一般网上的程序,要么收费,要么是动态壁纸特别占GPU.要么不咋稳定.而且不一定是4k的.于是自己又动手写了一个小程序来切换随机桌面壁纸.

Python写的,现在只有两个功能, 随机切换桌面壁纸和循环切换桌面壁纸.  当"自动换壁纸"配置关闭时,打开一次程序会随机切换一张壁纸. 当"自动换壁纸"配置开启时,程序会按着设定的时间自动切换桌面壁纸.
原理是找了个4k壁纸的网站,随机去选一张壁纸直接设置为桌面.而且不会产生多余的缓存
缺点是没有界面.只有个cmd的控制台.而且不能后台运行.
另外注意一下,程序同目录有个配置文件,别删除.配置文件可以自己改.
壁纸.jpg

另外不知道用这个人的需求多不多. 要是不多的话,我就不做界面了

[Python] 纯文本查看 复制代码
import requests
import time
import os
from bs4 import BeautifulSoup
import random
import re
import urllib.request
import ctypes
import configparser

#表头
Modelheaders = {  
#'upgrade-insecure-requests':'1',
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11'
}



def changepic(weburl,pagenum,autochange,autotime):
    while True: 
        try:         
            lastweb=weburl+str(random.randint(1,int(pagenum)))    #这个是获取页数

            res=requests.get(lastweb,headers=Modelheaders)    #获取网页代码

            shaixuan4=BeautifulSoup(res.text,"html.parser")   #用bs4分析源码

            shaixuan5=shaixuan4.find("div",id="thumbs")      #用bs4寻找标签

            imggroup=[]      #创建数组用于储存正确图片的地址

            for k in shaixuan5.find_all("li"):     #循环寻找列表格式的缩略图的li标签
                try:                               #防止出错程序停止运行
                    shaixuan6=k.find("a")["href"]   #寻找大图的网页地址
                    if len(shaixuan6)>30:           #这里正确的图片网址,字符大约是28个, 如果有大于30字符的网址,说明网址不是正确的图片网址,股筛选掉.
                        break                       #跳出一次当前循环
                    imggroup.append(shaixuan6)      #正确获取的大图图网址存入数组

                    #print(shaixuan3)
                except:                             #异常处理
                    pass                            #占位符
                    #print("异常")

            num=random.randint(0,len(imggroup))     #这里生成一个随机数,意在与在上面所有的图片里随机选一张图

            #print(imggroup)

            lasturl=imggroup[num]          #从数组里取出随机选择的图片网址
            #print(lasturl)

            res=requests.get(lasturl,headers=Modelheaders)   #分析这个大图的图片网址
            res_soup=BeautifulSoup(res.text,"html.parser")    #用bs4分析代码
            img_text=res_soup.find("img",id="wallpaper")      #寻找标签
            #print(img_text)
            img_url=img_text.get("src")     #这个是获取大图的实际地址.scr=xxxx
            print("更换壁纸中...")      
            #print("壁纸更换为: "+img_url)
            opener = urllib.request.build_opener()      #创建一个opener
            opener.addheaders = [('User-agent', 'Mozilla/5.0')]   #给这个opener设置header
            urllib.request.install_opener(opener)     #安装这个opener的表头header,用于模拟浏览器.如果不模拟浏览器,下面的代码会404
            PATH=urllib.request.urlretrieve(img_url)[0]           #获取处理图片地址
            ctypes.windll.user32.SystemParametersInfoW(20, 0, PATH, 3)   #设置桌面
            if autochange=="是":                 #如果自动切换桌面为是,那么将会循环本条
                print("等待 " +str(autotime) + " 秒")    #打印输出
                time.sleep(int(autotime))       #延迟几秒            
            else:
                    break    #占位符
        except:   #有时候会数据溢出,这里没功夫细看,索性除了问题先跳过
            time.sleep(0.1)   
            print("重试中,如果一直出现这条,说明配置文件不正确")    

    input("程序结束,请按回车退出")    #防止cmd运行完一闪而过,加的暂停

            



print("-----------------------------------------------------------")
print("吾爱破解论坛 [url=http://www.52pojie.cn]www.52pojie.cn[/url]")
print("-----------------------------------------------------------")
print("随机2k4k图片自动设置桌面壁纸,本程序同目录有个配置文件,请勿删除")
print("-----------------------------------------------------------")


if os.path.isfile("bzconfig.ini"):    #查看配置文件是否存在
    print("读取配置文件:")
    config = configparser.RawConfigParser()             #预备读取配置文件
    config.read('bzconfig.ini',encoding="utf8")         #读取配置文件
    autochange=config.get('基础设置', '自动换壁纸')       #获取配置文件数据
    print("自动换壁纸: "+autochange)                      #打印输出
    autotime=config.get('基础设置', '换壁纸时间')
    print("自动换壁纸等待时间: "+autotime)
    web=config.get('基础设置', '网址')
    #print("获取网址: "+web)
    allpage=config.get('基础设置', '页面数量')
    print("页面数量: "+allpage)
    print("-----------------------------------------------------------")
else:
    print("未找到配置文件,请重新下载配置文件,这里将使用默认配置来随机桌面壁纸")
    web="https://wallhaven.cc/search?categories=111&purity=100&atleast=2560x1440&ratios=16x9%2C21x9%2C16x10%2C32x9%2C48x9&sorting=toplist&order=desc&page="
    allpage=25
    autochange="否"
    autotime=3
    print("-----------------------------------------------------------")

changepic(web,allpage,autochange,autotime)          #运行程序





蓝奏云

https://wwe.lanzoui.com/b01tx5eve
密码:6i4o

免费评分

参与人数 53吾爱币 +50 热心值 +51 收起 理由
红色双喜 + 1 谢谢@Thanks!
ly864700344 + 1 + 1 谢谢@Thanks!
Soaring9 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
lsy262 + 1 我很赞同!
uilyuan + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
AiniMoco + 1 用心讨论,共获提升!
yio12138 + 1 + 1 我很赞同!
noff + 1 谢谢@Thanks!
zhumao + 1 + 1 热心回复!
房檐上的猫 + 1 我很赞同!
jiangsg + 1 + 1 谢谢@Thanks!
bbwwyuyu + 1 我很赞同!
xo8434123 + 1 + 1 用心讨论,共获提升!
没事好好 + 1 我很赞同!
fengtertor + 1 + 1 热心回复!
ywj0909 + 1 + 1 热心回复!
折旧折旧 + 1 + 1 我很赞同!
我爱你H大 + 1 + 1 感谢开发!
cyb2003 + 1 + 1 我很赞同!
caodi19931116 + 1 热心回复!
wf889 + 1 + 1 谢谢@Thanks!
jlzoe + 1 + 1 谢谢@Thanks!
高达酱 + 1 + 1 谢谢@Thanks!
xuxinliang + 1 + 1 我是菜鸟,这个python代码怎么用的啊?
小猪佩奇007 + 1 + 1 谢谢@Thanks!
15052036161 + 1 + 1 谢谢@Thanks!
Sen + 1 + 1 谢谢@Thanks!
小鸟游六花w + 1 + 1 楼猪啊!都已经置顶了,就等你做界面了
Colarier + 1 + 1 来波分等界面和后台运行
chenmg + 2 + 1 楼猪,我跟你说,我找这个好久了,终于等到你,一定要出界面呀,球球了!!.
AN94 + 1 + 1 热心回复!
Guqinghuan + 1 + 1 我很赞同!
VIP-YOHO + 1 + 1 我很赞同!
sigou1234 + 1 + 1 谢谢@Thanks!
xyztwwoo + 1 + 1 有界面更好,谢谢
yuanjie408 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
TonightPluto + 1 + 1 谢谢@Thanks!
sccccs + 1 + 1 热心回复!
打酱油的小妖怪 + 1 + 1 谢谢@Thanks!
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
j542936 + 1 + 1 感谢啊。终于有人出了~
alex3330 + 1 + 1 谢谢@Thanks!
时光书窝 + 1 + 1 挺好的,继续加油
Moming123 + 1 + 1 谢谢@Thanks!
samary1999 + 1 + 1 谢谢@Thanks!
qiyi235 + 1 谢谢@Thanks!
gabrielxmh + 1 + 1 挺好,需要免费换壁纸的程序
coolmo + 1 + 1 热心回复!
帅滴一批 + 1 我很赞同!
jack111nsy + 1 我很赞同!
不羁的风儿 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
xpmg + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
立刻 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

EnterpriseSolu 发表于 2021-1-26 07:43
windows内置了这个功能啊,定时切换图片背景,像播放幻灯片一样
 楼主| onlyclxy 发表于 2021-1-28 17:29
小怕i 发表于 2021-1-28 17:16
强烈希望出个软件成品 带界面的还能后台和开机自启的,膜拜大佬!!!

界面的话,我这边可得等等. python写界面挺费劲的.以后看看能不能用易语言或者c#从新写一个.那俩应该好搞界面
 楼主| onlyclxy 发表于 2021-1-26 18:44
立刻 发表于 2021-1-26 07:07
最好做个界面,并允许开机自启和后台运行。

得过几天我磨合磨合
 楼主| onlyclxy 发表于 2021-1-26 12:11
wggking 发表于 2021-1-26 10:29
这个资源图片下载的位置在哪?

不是下载的.. 是直接把网络图片设置为壁纸的.
要是想下载的话, 某宝一块钱能买好几g的壁纸可以随便自己换.
我也下过几t的图片.然鹅下完就没兴趣打开了..就想搞个这个随机一点,好歹有个新鲜感
吾爱蛋蛋 发表于 2021-1-26 04:44
可以代码传我试下
DogShit 发表于 2021-1-26 04:50
这个可以,谢谢了
miqi1314 发表于 2021-1-26 06:59
看着挺好的,下载了
立刻 发表于 2021-1-26 07:07
最好做个界面,并允许开机自启和后台运行。
xpmg 发表于 2021-1-26 07:20
谢谢楼主分享
小卡爱熟妇 发表于 2021-1-26 08:10
感谢分享
不羁的风儿 发表于 2021-1-26 08:14
做个界面吧,求你了,可以帮你画个框架!
waweiggfnh 发表于 2021-1-26 08:18
只要能设置后台运行就可以了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-28 03:08

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表