sanityko 发表于 2019-11-29 11:05

爬取bing每日壁纸并保存,顺带请教个问题

代码如下,问题是我下载好了壁纸,通过修改注册表也设置了壁纸,也更新了,但是实际桌面壁纸会灰屏,必须在运行一次,哪里的问题?求教
import time,os,requests,win32api,win32gui,win32con
os.chdir(r'F:\bing每日图片')#指定存储目录
Timestamp=time.strftime("%Y-%m-%d",time.localtime())#获取 当前时间戳 年月日
headers={
    'Referer':'https://cn.bing.com/',
    'Sec-Fetch-Mode':'no-cors',
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36'
    }#模拟电脑,设置请求头
r=requests.get('https://cn.bing.com',headers=headers)#将网页转换为文本文档
print(r.status_code)
if r.status_code==200:
    id=r.text.split('href="/th?id=')[1].split('&')[0]#获取图片ID,掐头去尾
    picid=requests.get('https://cn.bing.com/th?id='+id+'&rf=LaDigue_1920x1080.jpg&pid=hp',headers=headers).content#将图片转为二进制数据
    pic=open(Timestamp+'.jpg','wb')#新建一个图片
    pic.write(picid)#将图片的二进制数据写入图片
    pic.close#关闭进程
    time.sleep(1)#延时1毫秒
    k=win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control Panel\\Desktop",0,win32con.KEY_SET_VALUE)#打开桌面菜单栏
    win32api.RegSetValueEx(k,"WallPaper",0,win32con.REG_SZ, "D:\\bing每日图片"+'\\'+Timestamp+'.jpg')#设置壁纸
    time.sleep(5)
    win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER)#设置注册表之后立即生效
else:
    win32api.MessageBox(0,'无法连接网络','警告',win32con.MB_OK|win32con.MB_ICONWARNING)#弹出警告消息框
   
   

xtudou 发表于 2019-11-29 11:26

好东西,喜欢收藏壁纸的来吧

13593392936 发表于 2019-11-29 11:27

哎,厉害了,我连这个也不会

unsuns 发表于 2019-11-29 11:43

我都手动的,蛋疼的是只能存近一周的,超过一周忘了存的话,就没办法了!
这工具能否抓取以前的??

念所不及 发表于 2019-11-29 11:51

收藏一波

SmileParadise 发表于 2019-11-29 12:05

在win10商店里有一款应用叫Dynamic theme,可以实现每日替换和保存必应壁纸

白水饮 发表于 2019-11-29 12:24

需要把jpg图片转为bmp图片

sanityko 发表于 2019-11-29 13:37

unsuns 发表于 2019-11-29 11:43
我都手动的,蛋疼的是只能存近一周的,超过一周忘了存的话,就没办法了!
这工具能否抓取以前的??

我没测试,我的初衷只是想让我的桌面壁纸自动跟随bing,应该是可以的,我改改

sanityko 发表于 2019-11-29 13:38

SmileParadise 发表于 2019-11-29 12:05
在win10商店里有一款应用叫Dynamic theme,可以实现每日替换和保存必应壁纸

别人的工具是有很多,但是不是自己的{:1_937:}
页: [1]
查看完整版本: 爬取bing每日壁纸并保存,顺带请教个问题