下午吃饭的时候忽然想到这个创意,刚好不久前学到了python的爬虫,就想着结合一下制作一个自己的可操作的桌面壁纸执行文件。这个网站的地址的规律是:随着后面的b和c发生改变,它就会跳转到不同的图片。下面是python的代码块,改进版将放置在文章末尾。因为在发布时有的地方经常会放置错误,所以可能会和我运行时不是很符合,还有就是小猫这个网站有时候会进行反爬会出现爬不出来的现象。
import urllib.request
import random
temp=5
print('开始爬取猫咪图片!')
for i in range(int(temp)):
c=str(random.randint(1,9)*10*(random.randint(1,9)))
b=str(random.randint(1,9)*10*(random.randint(1,9)))
ed=('http://placekitten.com/'+c+'/'+b)
response = urllib.request.urlopen(ed)
cat_img = response.read() #获得信息
hdw=str('D:\cat\cat_00'+str(i)+'.jpg')
with open(hdw,'wb') as f:
f.write(cat_img)
print(str('正在下载第'+str(i+1)+'张猫咪图片...'))
print('下载成功!')
然后下面就是得运用dos命令了,当然使用vbs命令更加美观一点。
桌面壁纸只能使用bmp格式的图片,可以使用格式工厂之类的进行改格式,将猫咪图片的文件夹放置在c盘下。运行下面的dos命令。这个我将var设置为环境变量,赋值随机数,然后c就是它的路径。
@echo off
echo 壁纸正在更新中,请稍后...
set /p var=%random%%%5
c=str('c:\\WINDOWS\Web\Wallpaper\00')+str('var')+str('.bmp')
reg add "hkcu\control panel\desktop" /v wallpaper /d "c" /f
RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
exit
上面那样虽简洁,但是由于制作壁纸对图案的大小有要求,所以我就直接将部分代码包进函数中,当然作为随机数,b和c我都声明为全局变量,然后就是下载完后,考虑到图片名字重复会导致程序运行错误,我就直接用几个随机数作为文件名。
下面是改进版: