思路:
先选择在线签名网站,找到接口模拟请求,然后将生成的签名图片显示在 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. 6.10 docker (二) 守护态运行
  3. 凝思系统分辨率怎么看_机械液压系统的泄漏怎么办,液压系统基本知识,看完你就懂了...
  4. linux触摸屏两指缩放_自定义TextView实现单指拖动,双指缩放旋转
  5. 数组是逻辑结构还是存储结构_数据结构之存储方式
  6. dedecms 如何调用多个不同栏目的文章_SEO排名,同一篇文章,在多个栏目,如何处理?...
  7. PHP初级学习之PHP文件
  8. 看设备指示灯识别网络故障
  9. 《30天自制操作系统》学习笔记--第好多天
  10. View.Post()保证UI带你装逼带你飞
  11. mysql 查询polygon_如何通过mysql 判断点是否在指定多边形区域内
  12. linux没有安装防火墙,Linux安装防火墙
  13. Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'的解决办法
  14. 云栖社区用户行为准则
  15. Netural Machine Translation By Joinly Learning To Align And Translate
  16. 新时达电梯服务器维修,常见的新时达电梯维修时问题分析
  17. BUMO:BU Firework超级节点实时竞选系统
  18. java calendar 比较大小_关于Java日期加减,并且比较大小的方法
  19. cocos Creator android 上传图片与数据
  20. Java解析HL7消息进阶(解析自定义HL7消息)

热门文章

  1. 看完这篇 教你玩转渗透测试靶机vulnhub——DC3
  2. 使用IDEA过程中电脑蓝屏重启后,无法启动Maven项目
  3. php为什么不火了,PHP100和PHPchina现在怎么样了?感觉不火了、没落了?
  4. 安全监控系统为煤矿安全生产提供强力支持
  5. ae计算机配置要求,AdobePremiere和AE对电脑配置...
  6. 目标既定 使命必达 | 麒麟信安举行营销中心2023年度工作计划部署会
  7. java webclient使用,java – Spring Reactive WebClient
  8. 决策树底层思想,决策树的损失函数与极大似然函数理解
  9. 我的学习计划(持续更新)
  10. 利用计算机运算符编写检索式,计算机信息检索过程中常用的检索表达式