1.内容:结合爬虫和tkinter图形开发界面开发个性签名应用程序,并利用pyinstaller打包工具将其打包为.exe可执行文件
2.个性签名的网站: (抓取免费的个性签名) http://www.uustv.com/
3.使用软件:pycharm
4.python3.7
5.涉及的类库:PIL、requests、lxml、tkinter、pyinstaller
6.参照的b站视频 https://www.bilibili.com/video/av21909348?from=search&seid=15033061118385928238
from tkinter import *
from tkinter import messagebox
from PIL import Image,ImageTk
import requests
from lxml import etree
#创建窗口
root = Tk()
#标题
root.title('个性签名设计')
#窗口大小、初始位置设置
root.geometry('600x300+500+200')
#标签控件
label = Label(root,text = '签名',font = ('华文行楷',20),fg = 'red')
label.grid(row = 0,column = 0)
#输入框
entry = Entry(root,font = ('微软雅黑',20))
entry.grid(row = 0,column = 1)
#点击按钮,触发getImage函数
button = Button(root,text = '设计签名',font = ('微软雅黑',20),command = getImage)
button.grid(row = 1,column = 0)
#消息循环 显示窗口
root.mainloop()
(1)查询网页信息,得到是post请求,将post的信息加在代码里面
(2)函数代码
#模拟浏览器发送请求
def getImage():
#爬取免费的个性签名网站
startURL = 'http://www.uustv.com/'
#获取用户输入的名字
name = entry.get()
#去空格
name = name.strip()
if name == ' ':
messagebox.showinfo('提示','请输入用户名')
else:
#注意:这段必须加上post的信息name
data = {
'word':name,
'sizes':60,
'fonts':'jfcs.ttf',
'fontcolor':'#000000'
}
result = requests.post(startURL,data = data)
result = result.content.decode('utf-8') #解决乱码问题
#使用xpath解析网页
#初始化
html = etree.HTML(result)
#获取图片 返回值是列表形式
img = html.xpath('//div[@class = "tu"]/img/@src')
#获取图片完整的路径
imgURL = startURL + img[0]
#获取图片内容
response = requests.get(imgURL).content
#保存文件 文件名为输入的名字
f = open('{}.gif'.format(name),'wb')
f.write(response)
#显示图片
bm = ImageTk.PhotoImage(file = '{}.gif'.format(name))
label2 = Label(root,image = bm)
label2.bm = bm
label2.grid(row = 2,columnspan = 2) #columnspan表示跨越多列
# python
# -*- coding:utf-8 -*-
# author:Only time:2019/8/8
from tkinter import *
from tkinter import messagebox
from PIL import Image,ImageTk
import requests
from lxml import etree
#模拟浏览器发送请求
def getImage():
startURL = 'http://www.uustv.com/'
#获取用户输入的名字
name = entry.get()
#去空格
name = name.strip()
if name == ' ':
messagebox.showinfo('提示','请输入用户名')
else:
data = {
'word':name,
'sizes':60,
'fonts':'jfcs.ttf',
'fontcolor':'#000000'
}
result = requests.post(startURL,data = data)
result = result.content.decode('utf-8') #解决乱码问题
#使用xpath解析网页
#初始化
html = etree.HTML(result)
#获取图片 返回值是列表形式
img = html.xpath('//div[@class = "tu"]/img/@src')
#获取图片完整的路径
imgURL = startURL + img[0]
#获取图片内容
response = requests.get(imgURL).content
f = open('{}.gif'.format(name),'wb')
f.write(response)
#显示图片
bm = ImageTk.PhotoImage(file = '{}.gif'.format(name))
label2 = Label(root,image = bm)
label2.bm = bm
label2.grid(row = 2,columnspan = 2)
#创建窗口
root = Tk()
#标题
root.title('个性签名设计')
#窗口大小、初始位置设置
root.geometry('600x300+500+200')
#标签控件
label = Label(root,text = '签名',font = ('华文行楷',20),fg = 'red')
label.grid(row = 0,column = 0)
#输入框
entry = Entry(root,font = ('微软雅黑',20))
entry.grid(row = 0,column = 1)
#点击按钮
button = Button(root,text = '设计签名',font = ('微软雅黑',20),command = getImage)
button.grid(row = 1,column = 0)
#消息循环 显示窗口
root.mainloop()
#鼠标放在.py文件所在的文件夹上面,按住shift,并点击鼠标右键,打开powersheel
#在powersheel输入代码为:
pyinstaller -F -w +自己的.py文件的路径