200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 粉丝福利——二次元图片展示(屏保)

粉丝福利——二次元图片展示(屏保)

时间:2019-05-10 13:06:20

相关推荐

粉丝福利——二次元图片展示(屏保)

又到了粉丝福利分享时间啦!今天我们来用Python敲一个屏保程序,用到了API端口相关的知识,您可以翻下我以前的文章,有相关内容。

这个是我同学让我做的,我本不想做,但中午的时间,闲着归闲着,我还能白赚一个人情,何乐而不为?

这个东西做着很简单。

程序的端口是/random.php,也是这位谪仙人给的。需要一个参数:return=json。说明文档见:/random.php

卷 Data 的文件夹 PATH 列表卷序列号为 90AF-CB35D:.│ 图片展示.py│└─temp

直接敲程序,还需要一个名为temp的文件夹。

请提前安装requestspygame模块。

首先放出备用程序:

from requests import getfrom json import dumpsfrom random import randintimport pygamefrom pygame.locals import * url = '/random.php'params = {'return':'json'}response = get(url,params).json()width,height,img = int(response['width']),int(response['height']),response['imgurl']content = get(img)number = randint(100000,999999)with open('temp/%d.jpg' % number,'wb') as f:f.write(content.content)pygame.init()canvas = pygame.display.set_mode((width,height))canvas.fill((255,255,255))pygame.display.set_caption('Show')def handle():for event in pygame.event.get():if event.type == QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE):pygame.quit()exit()background = pygame.image.load('temp/%d.jpg' % number) while True:canvas.blit(background,(0,0))handle()pygame.display.update()

Okay,这里就不展示了,就是一个简单的屏保效果,关闭请ESC键。

再放出真实程序:

小歪API,/api/api.php,直接发get请求即可,可以用Postman/APIfox调试。

from requests import getfrom json import dumpsfrom random import randintimport pygamefrom pygame.locals import * content = get('/api/api.php')number = randint(100000,999999)with open('temp/%d.jpg' % number,'wb') as f:f.write(content.content)pygame.init()canvas = pygame.display.set_mode((1920,1080))canvas.fill((255,255,255))pygame.display.set_caption('Show')def handle():for event in pygame.event.get():if event.type == QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE):pygame.quit()exit()background = pygame.image.load('temp/%d.jpg' % number) while True:canvas.blit(background,(0,0))handle()pygame.display.update()

更新:

想要会变化的?这里:

from requests import getfrom json import dumpsfrom random import randintimport pygamefrom pygame.locals import * #创建pygame窗口pygame.init()canvas = pygame.display.set_mode((1920,1080))canvas.fill((255,255,255))pygame.display.set_caption('Show')#事件处理def handle():for event in pygame.event.get():if event.type == QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE):pygame.quit()exit()while True:#下载图片content = get('/api/api.php')number = randint(100000,999999)with open('temp/%d.jpg' % number,'wb') as f:f.write(content.content)#装填图片background = pygame.image.load('temp/%d.jpg' % number) canvas.blit(background,(0,0))#设置窗口handle()pygame.display.update()pygame.time.delay(5000) #秒数是多少,就写几千秒,这是五秒一换

图片下载器:

from requests import get # get请求方法from json import dumps # json序列处理from random import randint # 随机数from os.path import exists # 检测文件夹是否存在from os import mkdir # 创建文件夹# 下载的爬虫def download(path):url = "/api/api.php" # 请求URLcontent = get(url) # 发送网络请求number = randint(100000, 999999) # 生成随机数print("保存图片 >>> ./%s/%d.jpg" % (path, number)) # 输出保存信息with open("%s/%d.jpg" % (path, number), "wb") as f: # 保存图片信息f.write(content.content)# 主函数def main(path):# 下载for i in range(1, int(input("您需要多少张图片 >>> ")) + 1):download(path)# 保留解释器窗口input("下载完成。")# 保存路径的程序if __name__ == "__main__":try: # 包含异常folder = input("您需要将图片保存到哪里(输入相对路径) >>> ")if exists(folder): # 有这个文件夹就直接保存main(folder) # 下载else: # 如果没有这个文件夹mkdir(folder) # 创建文件夹main(folder) # 下载except Exception as e: # 提取异常基类print("ERROR:%s" % e) # 输出异常

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。