少女祈祷中...

Python爬虫/GUI编程之签名生成器


本篇概述:主要记录爬虫+GUI制作签名生成器


1、爬虫实现

  • 暂时留空,本篇先解析代码

2、GUI实现

  • 暂时留空,本篇先解析代码

3、代码

github地址:https://github.com/Coder-Sakura/Signature-generator

1. uustv.py ——> 爬虫模块

点我可以将内容伸缩哦~

٩(๑>◡<๑)۶

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import requests
import time
from bs4 import BeautifulSoup
from tkinter import messagebox
from tkinter import * # PhotoImage

class Spider(object):
# 初始化,包括请求头,url,支持的字体、字号,需要生成签名的文字
def __init__(self):
self.headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36',
}
self.url = 'http://m.uustv.com/'
self.values = ['个性签','连笔签','潇洒签','草体签','合体签','商务签','可爱签']
self.font = ['jfcs.ttf','qmt.ttf','bzcs.ttf','lfc.ttf','haku.ttf','zql.ttf','yqk.ttf']
self.v_f = dict(zip(self.values,self.font))
self.word = ''
self.fonts = ''
self.size = 60

# 接受GUI页面传来的参数,首先检查是否为空,其次是选择的字体大小
def check(self,part,enter,numberChosen,sizesChosen):
self.part = part
self.word = enter.get()
self.fonts = numberChosen.get() # 文字
self.size = sizesChosen.get()
if not enter.get():
messagebox.showinfo('提示','请输入需要生成签名的文字')
else:
if self.fonts in self.v_f:
self.fonts = self.v_f[self.fonts] # 文字转换成字体格式名称
# messagebox.showinfo('提示',word)
# messagebox.showinfo('提示',fonts)
self.post_img()
# 发送请求,获取图片地址,并捕获图片数据返回
def post_img(self):
data = {
'word': self.word,
'sizes': self.size,
'fonts': self.fonts,
'fontcolor': '#000000'}
html = requests.post(url=self.url,data=data,headers=self.headers)
html_soup = BeautifulSoup(html.text,'lxml')
img_url = self.url + html_soup.find('div',attrs={'class':'tu'}).find('img')['src']
print(img_url)
img_html = requests.get(url=img_url,headers=self.headers)
img_html.encoding = 'utf8'
self.down(img_html)

# 下载图片
def down(self,img_html):
f = open('{}.gif'.format(self.word),'wb')
f.write(img_html.content)
f.close()
self.view_img()

# 将图片展示到GUI页面
def view_img(self):
image = PhotoImage(file='{}.gif'.format(self.word))
label2 = Label(self.part,image=image)
label2.bm = image
label2.grid(row=3,columnspan=2)

2. uustv_gui.py

点我可以将内容伸缩哦~

٩(๑>◡<๑)۶

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
from tkinter import *
from tkinter.ttk import Combobox
from uustv import *

class GUI(object):
def __init__(self):
self.window_title = '签名生成器--网络精英--2019.04.12'
self.label_text = '输入签名字样'
self.button_text = '点击生成'
self.values = ['个性签','连笔签','潇洒签','草体签','合体签','商务签','可爱签']
self.sizes = [10,20,30,40,50,60,70]

# GUI
def parts(self): # 部件
part = Tk() # 封装对象
part.title(self.window_title) # 标题
part.geometry('545x330') # 窗口大小

# 定义label,文字区域,只能看不能点,设置文字,文字字体和文字大小
label1 = Label(part,text='设计字样',font=('华文行楷',20))
label1.grid() # 定义布局格式,grid()表示网格格式

# 输入框
enter = Entry(part,font=('微软雅黑',20))
enter.grid(row=0,column=1)

# 字体样式选择
numberChosen = Combobox(part, width=12, state='readonly')
numberChosen['values'] = self.values
numberChosen.current(0)
numberChosen.grid(row=1,column=0)

# 字体大小选择
sizesChosen = Combobox(part, width=12, state='readonly')
sizesChosen['values'] = self.sizes
sizesChosen.current(5)
sizesChosen.grid(row=1,column=1)

# 按钮,当按下按钮时,携带参数至指定函数
button = Button(part,text='点击生成',font=('微软雅黑',20),command=lambda: Spider().check(part,enter,numberChosen,sizesChosen))
button.grid(row=2,column=0)

part.mainloop()
gui = GUI()
gui.parts()

3. 生成软件

1
2
3
4
5
6
7
8
9
# 1.首先安装pyinstaller
pip3 install pyinstaller

# 2.在2个py的所在目录调出cmd,输入以下命令:
pyinstaller -F -w uustv.py uustv_gui.py
# 在生成的文件夹中找到dict文件夹,其下有exe文件,便是最终的签名生成器

# 3.如果需要自定义软件图标,需要自己准备好适当尺寸的ico格式图片
# 打包的时候使用-i xxx.ico 来指定自定义的ico图标
-------------本文结束感谢您的阅读-------------

本文标题:Python爬虫/GUI编程之签名生成器

文章作者:Coder-Sakura

发布时间:2019年04月19日 - 21:10:52

最后更新:2019年09月26日 - 12:09:11

原始链接:https://coder-sakura.github.io/blog/2019/04/19/signature-generator/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。