Python 个性签名图片获取GUI--基于简单爬虫

逍遥友 2019-12-15

先来看看程序运行的样子:

Python 个性签名图片获取GUI--基于简单爬虫

 Python 个性签名图片获取GUI--基于简单爬虫

 Python 个性签名图片获取GUI--基于简单爬虫

 所以,程序的原理是  从一个url = ‘

http://www.uustv.com/

’中爬取个性签名的图片。

在该网页中审查该图片的元素,然后找到该图片的img ur

使用正则表达式直接定位

程序的后面使用到了tkinter的 GUI简易界面,用于和用户的简单交互,非常方便。

整个程序的完整代码如下: (有任何问题欢迎留言讨论)

import tkinter as tk
from tkinter import messagebox
import requests
import re
from PIL import Image,ImageTk


def design():
    name=et.get()
  #  print(name)
    name=name.strip()
    if name == ‘‘:
        messagebox.showinfo(‘提示‘,message=‘请输入姓名‘)
    else:
        #获取签名图片
        data={
            ‘word‘: name,
            ‘sizes‘: 60,
            ‘fonts‘: ‘haku.ttf‘,      # jfcs.ttf个性签  zql.ttf 商务签   qmt.ttf连笔签    bzcs.ttf潇洒签   lfc.ttf草体签   haku.ttf合同签     yqk.ttf可爱签
            ‘fontcolor‘: ‘# 000000‘
        }
        url=‘http://www.uustv.com/‘

        result=requests.post(url,data)
        # print(result)  Response [200]

        #设置编码
        result.encoding=‘utf-8‘
        html=result.text
        #print(html)  网页源代码  b

        #正则表达式
        reg=r‘<div class="tu"><img src="(.*?)"/></div>‘
        imgpath=re.findall(reg,html)
        imgurl=url+imgpath[0]
       # print(imgurl)

        #保存图片
        response=requests.get(imgurl).content
        with open(‘{}.gif‘.format(name),‘wb‘)as f:
            f.write(response)

        #显示图片
        bm=ImageTk.PhotoImage(file=‘{}.gif‘.format(name))

        label2=tk.Label(window,image=bm)
        label2.bm=bm
        label2.grid(row=2,columnspan=2)

#设置窗口
window=tk.Tk()
window.geometry(‘600x300+200+200‘)
window.title(‘签名设计‘)
#设置控件
label=tk.Label(window,text=‘姓名:‘,font=(‘宋体‘,20),fg=‘red‘)
label.grid()

et=tk.Entry(window,font=(‘宋体‘,20))
et.grid(row=0,column=1)

bt=tk.Button(window,text=‘设计签名‘,font=(‘宋体‘,15),width=10,height=2,command=design)
bt.grid(row=1,column=1)




window.mainloop()

值得注意的是,在headers里有不同的签名字体可以设置,但是同一名字文件会覆盖。

相关推荐