思路:
先选择在线签名网站,找到接口模拟请求,然后将生成的签名图片显示在 Tkinter 生成的 GUI 窗口上,最后保存生成的签名图片
选择网址为:http://www.uustv.com/

首先了解爬虫的基本步骤:

  1. 发起请求 :即发送一个Request,可能包含额外的headers,data等信息
  2. 获取响应内容 :得到网页的HTML文件内容
  3. 解析内容:可以使用正则表达式提取出想要的内容
  4. 保存数据:将数据存为文本,或mp3,mp4等文件或存到数据库等

一.首先确定GUI界面:

例如如:

代码:

root =Tk()
root.title('签名工具')
root.resizable(0,0)option='1.艺术签 2.连笔签 3.商务签 4.楷书签 5,潇洒签 6.草体签 7.行书签 8.个性签 9.可爱签'
var1=StringVar(value='')
var2=StringVar(value='')lable1=Label(root,text=option,font=('黑体',6))
lable2=Label(root,text='输入你的名字:',font=('黑体',13))entry1=Entry(root,width=40,font=('黑体',13),textvariable=var1)
entry2=Entry(root,width=10,font=('黑体',13),textvariable=var2)button=Button(root,text='确定',command=lambda:check())
lable1.grid(row=0,columnspan=3)
lable2.grid(row=0,column=0)
entry1.grid(row=1,column=1)
entry2.grid(row=1,column=2)
button.grid(row=1,column=3)
root.mainloop()

二.爬取我们需要的内容

1. 爬取的网页样式:目的获取红色框的图片

2. 请求网页需要的参数:url和表单数据data

url:

表单数据: 如图下四个参数:
fonts为签名样式在网页的真实值,我们输入的样式
word为输入的名字

代码:

 signature = ['1.ttf','zql.ttf','8.ttf','6.ttf','bzcs.ttf','lfc.ttf','2.ttf','3.ttf','yqk.ttf']url='http://m.uustv.com/'#请求网页需要的参数data ={'word':name,'sizes':60,'fonts':signature[num-1], #实际代码中的1表示0'fontcolor': '#000000'}#1.对需要爬取的网页发起请求  2. 获取响应的内容response=requests.post(url,data)

3.爬取图片的步骤

       #1.对需要爬取的网页发起请求  2. 获取响应的内容response=requests.post(url,data)response.encoding='utf-8' print(response.text)#3.解析内容 imgXpath='<img src="(.*?)"/></div>' #对请求回来的数据进行提取imgUrls=re.findall(imgXpath,response.text) #正则取下来的是一个列表content=requests.get(url+imgUrls[0]).content#4.将获取的二进制内容保存为图片with open('{}.gif'.format(name),'wb') as f: f.write(content)#5.显示图片bg_img=ImageTk.PhotoImage(file='{}.gif'.format(name))#6.将图片在GUI的底部显示lable=Label(root,image=bg_img)lable.bg_img=bg_imglable.grid(row=2,columnspan=4)  #在第三行显示,合并四列except:messagebox.showinfo('提示',message='生成失败')pass

4. 爬取的结果:

三.完整代码

from tkinter import *
from tkinter import messagebox
from PIL import  Image,ImageTk  #pip install pillow显示图片
import re
import  requestsroot =Tk()
root.title('签名工具')
root.resizable(0,0)option='1.艺术签 2.连笔签 3.商务签 4.楷书签 5,潇洒签 6.草体签 7.行书签 8.个性签 9.可爱签'
var1=StringVar(value='')
var2=StringVar(value='')def check():  #输入规范处理name = entry1.get()num  = entry2.get()flag = Trueif num.isdigit():num= int(num)if name=='':var1.set('不能为空')flag= Falseif name.isdigit():var1.set('不能为数字')flag= Falseif type(num) == type(' ') or num== '':var2.set('1-9')flag=Falseelse:if num>9 or num <1:var2.set('1-9')flag = Falseif flag :get_img(name,num) #输入的用户名称和签名passdef get_img(name,num,root=root):try:#这里的接口font是选择签名的样式signature = ['1.ttf','zql.ttf','8.ttf','6.ttf','bzcs.ttf','lfc.ttf','2.ttf','3.ttf','yqk.ttf']url='http://m.uustv.com/'#请求网页需要的参数data ={'word':name,'sizes':60,'fonts':signature[num-1], #实际代码中的1表示0'fontcolor': '#000000'}#1.对需要爬取的网页发起请求  2. 获取响应的内容response=requests.post(url,data)response.encoding='utf-8' print(response.text)#3.解析内容imgXpath='<img src="(.*?)"/></div>' #对请求回来的数据进行提取imgUrls=re.findall(imgXpath,response.text) #正则取下来的是一个列表content=requests.get(url+imgUrls[0]).content #获取的图片是二进制文件#4.将获取的二进制内容保存为图片with open('{}.gif'.format(name),'wb') as f:f.write(content)#5.显示图片bg_img=ImageTk.PhotoImage(file='{}.gif'.format(name)) #6.将图片在GUI的底部显示lable=Label(root,image=bg_img)lable.bg_img=bg_imglable.grid(row=2,columnspan=4)  #在第三行显示,合并四列except:messagebox.showinfo('提示',message='生成失败')passlable1=Label(root,text=option,font=('黑体',6))
lable2=Label(root,text='输入你的名字:',font=('黑体',13))entry1=Entry(root,width=40,font=('黑体',13),textvariable=var1)
entry2=Entry(root,width=10,font=('黑体',13),textvariable=var2)button=Button(root,text='确定',command=lambda:check())
lable1.grid(row=0,columnspan=3)
lable2.grid(row=0,column=0)
entry1.grid(row=1,column=1)
entry2.grid(row=1,column=2)
button.grid(row=1,column=3)
root.mainloop()

Python 使用Tkinter制作签名(附完整代码)相关推荐

  1. 酷炫的业务看板大屏可以使用 Python 轻松制作( 附完整代码)

    不少公司和学校将信息化手段应用到了日常工作中,数字大屏可以用做数据监控的前端平台,在数据监控与分析中可以起到重要作用. 但是,制作一张大屏可要花费不少精力,如何在一天内快速做好一张数据实时监控大屏?需 ...

  2. python调用第三方接口获取数据_python调用接口,python接收post请求接口(附完整代码)...

    与Scala语言相比,Python有其独特的优势和广泛的应用,python调用接口,因此Spark也推出了PySpark,它在框架上提供了一个使用Python语言的接口,python接收post请求接 ...

  3. Python模拟京东登录(附完整代码)

    来源:IMyxuan 链接:https://segmentfault.com/a/1190000011978866 分析登录的网络请求 打开https://passport.jd.com/new/lo ...

  4. 网页设计html最简单水印方法,前端canvas水印快速制作(附完整代码)

    两种水印效果如图: 原理解析: 图一斜纹类:创建一个和页面一样大的画布,根据页面大小以及倾斜角度大致铺满水印文字,最后转化为一张图片设为背景 图二倾斜类:将文字倾斜后转化为图片,然后设置背景图片rep ...

  5. Python使用tkinter打造自定义对话框完整代码

    问题来源:前一阵发过一个技术文章Python编写抽奖式随机提问程序,其中有个弹出式对话框,好像上海科技大学宋老师在群里当时问了一句对话框中中奖姓名是否能显示的大一些,如图: 当时记得标准的tkinte ...

  6. python代码手机壁纸_Python制作微信好友背景墙教程(附完整代码)

    引言 前段时间,微信朋友圈开始出现了一种晒照片新形式,微信好友墙,即在一张大图片中展示出自己的所有微信好友的头像. 效果如下图,出于隐私考虑,这里作了模糊处理. 是不是很炫,而且这还是独一无二的,毕竟 ...

  7. Python:制作一个模拟扔硬币的程序(附完整代码)

    Python:制作一个模拟扔硬币的程序(附完整代码) 在这个项目中,我们将编写一个Python程序来模拟扔硬币的方式.我们会使用Python内置的随机模块,实现随机出现正面或反面的效果. 首先,我们需 ...

  8. 用Python代码画一个足球(附完整代码)

    用Python代码画一个足球(附完整代码) C站举办了世界杯征文活动,本文用Python代码画一个足球. 实现方法介绍 本文的绘图工具使用Python的标准库turtle库,无需安装,导入即可使用. ...

  9. Python数据可视化:2018年北上广深空气质量分析(附完整代码)

    ♚ 法纳斯特,Python爱好者,喜欢爬虫,数据分析以及可视化. 就在这周偶然看到一个学弟吐槽天津的空气,不禁想起那段厚德载雾,自强不吸的日子. 无图无真相,下图为证. 左边的图是去年2月份的时候,这 ...

最新文章

  1. 刷题:二叉树的遍历方式及根据遍历结果还原二叉树
  2. EOS共识机制——DPoS代理权益证明
  3. 谨防电子邮件泄露数据
  4. 组建校园网计算机网络设计,小型校园网的设计与组建Word版
  5. Apache Kafka简介
  6. go odroid_小众奇葩!Odroid Go Super简评
  7. 前端学习(3085):vue+element今日头条管理-封装数据接口
  8. NB-IOT:系列专题1:低功耗能力
  9. linux usb 同步传输,从设备到主机的用户模式USB等时传输
  10. 模糊c均值聚类_聚类算法及其数据可视化
  11. WAP网站制作(WAP网站建设)全攻略教程一
  12. 企业间数据竞争规则研究
  13. windows7桌面计算机作用,win7系统虚拟桌面功能的详细教程
  14. 利用栈实现中缀表达式转后缀表达式
  15. 2022-07-17 Linux group与user基础概念
  16. freeswitch hangup hook lua脚本处理
  17. Ping++通过PCI DSS认证,保护企业用户信息安全
  18. MAC远程桌面控制Ubuntu
  19. java整合消息推送_SpringMVC整合websocket实现消息推送及触发功能
  20. redis事件通知(notify-keyspace-events Ex)

热门文章

  1. 网盘进化史就这样(上)——原理简析
  2. 如何防止php漏洞,关于如何防止PHP漏洞?
  3. tp5.0操作phpexcel
  4. 现代信号处理——参数估计理论(最小二乘估计)
  5. centOS之ls命令
  6. 见证奇迹-Vue源码全面揭秘
  7. ubuntu突然断电重启显卡驱动失败解决办法(不需要重装驱动)
  8. C语言程序设计与实践 北理工 1. 达拉崩吧的酒宴
  9. Blog5 无监督深度关键短语生成——关键代码分析3
  10. 51单片机入门 第一篇:LED灯