Python实战篇重在实战,今天,我们就来设计一款自己的签名软件,稍微涉及一点爬虫(简单点说就是从网页上爬取你想要的数据,然后保存下来自己用,切记不要违法使用哦)的东西,最后的成果就是输入你想要签名的名字,点击设计签名,最终生成一幅签好名的图画,效果还不错哦!
软件运行操作演示
01
一、运行软件
二、输入名字
三、显示效果
关键函数分析一
02
爬虫函数:
代码语言:javascript复制def download():
startUrl = 'http://www.uustv.com/'
#获取用户输入的姓名
name = entry.get()
#过滤空格
name = name.strip()
if name == '':
messagebox.showinfo('提示','请输入姓名')
else:
#模拟网页发送数据 jfcs.ttf
data = {
'word':name,
'sizes':'60',
'fonts':'jfcs.ttf',
'fontcolor':'#000000'
}
result = requests.post(startUrl,data=data)
#print(result)
result.encoding ='utf-8'
#获取网页代码
html = result.text
#<div class="tu"><img src="(.*?)"/></div>
req ='<div class="tu"><img src="(.*?)"/></div>'
imagePath = re.findall(req,html)
#print(imagePath)
# 图片完整的路径
imgUrl = startUrl imagePath[0]
# print(imgUrl)
# 获取图片内容
response = requests.get(imgUrl).content
#保存图片 二进制
#f = open('{}.gif'.format(name), 'wb')
#f.write(response)
#f.close()
with open('{}.gif'.format(name), 'wb') as f:
f.write(response)
#显示图片
bm = ImageTk.PhotoImage(file ='{}.gif'.format(name))
label2 = Label(root,image = bm)
label2.bm = bm
label2.grid(row = 2 ,columnspan = 2)
代码解读:根据函数名可以看到这是一个具有下载功能的函数,该函数的目的在于向目标网站爬取我们所需要的数据,设想,我们从网站获取数据,首先要有我们的输入,因此,在代码里面,我们就有了模仿网页发送的输入数据,然后将服务器反馈回来的信息进行筛选,得到我们想要的数据,这里就是返回一张图片,并进行保存。
关键函数分析二
03
代码语言:javascript复制# -*- coding:utf-8 -*-
from tkinter import *
from tkinter import messagebox
from PIL import Image,ImageTk
import requests
import re
#创建窗口
root = Tk()
#标题
root.title('签名设计')
#窗口大小 位置
root.geometry('600x300 500 300')
label = Label(root,text = '你的名字',font = ('华文宋体',20),fg = 'red')
#网格布局
label.grid()
#输入框
entry = Entry(root,font = ('华文宋体',20))
entry.grid(row = 0,column = 1)
#点击按钮
button = Button(root,text = '设计签名',font = ('微软雅黑',20),fg = 'green',command=download)
button.grid(row = 1,column = 1)
#消息循环
root.mainloop()
函数分析:这一部分我们可以称之为可视化窗口创建,原因在于该段代码的运行,会生成一个图像窗口界面,主要用到了tkinter 这个包函数,代码里面采用了网格布局,顾名思义,就像一张网格的布局,然后我们在里面添加我们想要的标题栏,按钮等等,在按钮的后面设置响应函数,如此,每次单击相应的按钮就会执行不同的函数,但是此处有一个问题,就是为什么我们的软件可以不断运行呢,按照之前的实践,python代码除了for,while循环之类,不是按顺序执行然后就关闭了吗?答案在于root.mainloop(),该句代码会将我们的整个布局不断的循环,所以我们才看到软件一直在运行,而不是运行结束后还需要再次运行,因此,本次的签名设计软件只要不关闭就可以反复的运行,大家可以尝试一下哦!
再次欣赏一下效果吧:
今天的签名软件设计结束了,说实话里面涉及东西还是不太简单哦,特别是爬虫部分可能不太好理解,不过没关系,以后慢慢来,现在嘛,先看到功能就可以了
编辑:玥怡居士|审核:小圈圈居士