Python爬取个性签名

2023-11-12

#coding:utf-8
#import  tkinter
from tkinter import *
from tkinter import messagebox
import requests
import re
from PIL import Image

def download():
    start_url = 'http://www.uustv.com/'
    name = entry.get().encode('utf-8')
    '''
    *首先要搞清楚,字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,
    即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。
    decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码。
    encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串str2转换成gb2312编码。
    总得意思:想要将其他的编码转换成utf-8必须先将其解码成unicode然后重新编码成utf-8,它是以unicode为转换媒介的
    如:s='中文'
    如果是在utf8的文件中,该字符串就是utf8编码,如果是在gb2312的文件中,则其编码为gb2312。这种情况下,要进行编码转换,都需要先用
    decode方法将其转换成unicode编码,再使用encode方法将其转换成其他编码。通常,在没有指定特定的编码方式时,都是使用的系统默认编码创建的代码文件。
    如下:
    s.decode('utf-8').encode('utf-8')
    decode():是解码
    encode()是编码
    isinstance(s,unicode):判断s是否是unicode编码,如果是就返回true,否则返回false*

    '''
    if not name:
        messagebox.showinfo('提示','请输入姓名再设计!')
        return
    data = {
        'word':name,
        'sizes':'60',
        #'fonts':'jfcs.ttf', # 个性签名
        #'fonts':'qmt.ttf', # 连笔签名
        'fonts': 'bzcs.ttf',# 潇洒签名
        #'fonts':'lfc.ttf',# 草体签名
        #'fonts':'haku.ttf',# 和文签名
        #'fonts':'zql.ttf',# 商务签名
        #'fonts':'yak.ttf',# 可爱签名
        'fontcolor':'#000000'
    }

    result = requests.post(start_url,data = data).content
    reg = '<div class="tu">.*<img src="(.*?)"/></div>'# 截止20180302 网站CSS变动
    result = bytes.decode(result) # byte转换成string
    img_url = start_url + re.findall(reg,result)[0]
    name = 'tmp' # 避免了源代码在win下无法正常写入文件的问题
    response = requests.get(img_url).content
    # 将生成的签名图片下载到本地
    with open('{}.gif'.format(name),'wb')as f:
        f.write(response)
    try:
        im = Image.open('{}.gif'.format(name))
        im.show()
    except:
        print("自己打开看吧!")

root = Tk()
root.title('个性签名设计')
root.geometry('+800+300')# 设置窗口出现在屏幕上面的位置
Label(root,text='姓名',font = ('微软雅黑',15)).grid() # 布局方法不要混用
entry = Entry(root,font=('微软雅黑',15))
entry.grid(row=0,column=1)
button = Button(root,text='设计签名',font=('微软雅黑',15),width = '10',height = 1,command = download)
button.grid(row=1,column=1)
root.mainloop()
'''
from tkinter import *
import requests
from tkinter import messagebox
import re
from PIL import Image,ImageTk
def download():
    startUrl = 'http://www.uustv.com/'
    name = entry.get()
    if not name:
        messagebox.showinfo('提示','请输入名字!')
    else:
        data = {
            'word':name,
            'sizes':'60',
            'fonts':'jfcs.ttf',
            'fontcolor':'#000000'
        }

        result = requests.post(startUrl,data = data)
        result.encoding = 'utf-8'

        req = '<div class="tu"><img src="(.*?)"/></div>'
        imgUrl = startUrl+(re.findall(req,result.text)[0])
        response = requests.get(imgUrl).content
        with open('{}.gif'.format(name),'wb') as f:
            f.write(response)
        #im = Image.open('{}.gif'.format(name))
        #im.show()
        bm = ImageTk.PhotoImage(file = 'E:\py\{}.gif'.format(name))
        label2 = Label(root, image = bm)
        label2.bm = bm
        label2.grid(row = 2,columnspan = 2)


root = Tk()
root.title('GUI')
root.geometry('600x300')
root.geometry('+500+200')
label = Label(root,text = '签名',font = ('华文行楷',20))
label.grid(row=0,column = 0)
entry = Entry(root,font = ('微软雅黑',20))
entry.grid(row = 0,column = 1)


Button(root,text = '设计签名',font = ('微软雅黑',20),command = download).grid(row = 1,column = 0)

root.mainloop()
'''

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python爬取个性签名 的相关文章

随机推荐

  • 软工导论知识框架(二)结构化的需求分析

    本章节涉及很多重要图表的制作 如ER图 数据流图 状态转换图 数据字典的书写等 对初学者来说比较生僻 本贴只介绍基础的轮廓 后面会有单独的帖子详解各图表如何绘制 一 结构化的软件开发方法 结构化的分析 设计 实现 二 需求分析的重要性 1
  • QT5 出现一些问题的解决 办法

    版本 Qt Creator 5 4 0 mingw QT编写串口助手 1 extra qualification Widget on member ConvertHexChar fpermissive error extra qualifi
  • Mybatis使用拦截器实现数据权限

    1 自定义注解 Documented Target ElementType METHOD Retention RetentionPolicy RUNTIME public interface Permission Documented和 D
  • set_input_delay

    set input delay如何约束 3 FPGA时序约束理论篇之IO约束 数字IC剑指offer 建立时间 setup time 和保持时间 hold time 详析 建立时间和保持时间 setup time 和 hold time 数
  • 页面上下、左右滑动(selenium+python:Web自动化)

    1 上下滑动 滑动至页面底部 这个是固定写法 可以直接用 js1 window scrollTo 0 document body scrollHeight self driver execute script js1 滑动至页面顶部 这个也
  • SAS EM(六)时间序列理论

    SAS EM 六 时间序列理论 大家以前会听说过AR模型 MA模型 ARMA模型 ARIMA模型 这些到底是什么呢 今天来简易讲解一下 顺便用sas实操一下 由于本文是基于自己学习的归纳总结 若有讲得不对的地方 也希望读者指出 会及时修改
  • java根据模板生成world文件

    首先找一个world文件模板修改一下 类似如下图修改 修改完之后保存文件先保存xml文件之后修改ftl后缀名 保存成xml之后 有的时候改的有问题 需要使用文本查看器修改 手动的修改完整为 gongchenmingchen 这样的 所以需要
  • 虚拟机教程(一) 启用win10自带虚拟机

    由于本人电脑是win10 故尝试以下win10 自带的Hyper V虚拟机 特写教程如下 刚刚都写好了 不知道什么原因保存失败 刷新后整个都没了 草稿箱都找不到 重新写 一切从简 第一步 打开控制面板 gt 程序和功能 gt 启用windo
  • 浅谈Node中的模块化

    关于这篇文章早在去年年初的时候我就想写一片关于模块化的文章 但是推到现在才来完成也有很多好处 巩固之前对Node的理解 毕竟在我目前的项目中还没有一款项目是用到了Node开发 所以导致我对Node的一些基本知识已经忘记 一 什么是模块化 现
  • mac安装Golang开发环境及快速入门

    目录 一 Mac brew 安装go环境 1 1 安装步骤 1 2 设置GOPATH 及环境变量 1 3 编写第一个go程序 二 快速入门 2 1 快速入门需求 2 2 go学习 自用 2 2 1 go基础程序 2 2 2 变量声明 2 2
  • java递归和非递归实现快排

    Java递归和非递归实现快排 文章目录 Java递归和非递归实现快排 前言 一 快速排序基本逻辑 二 过程演示 三 实现代码 总结 前言 最近复习数据结构 顺便复习快速排序的过程 一 快速排序基本逻辑 快排以某个关键字为基准 将待排序序列分
  • Jenkins 构建打包

    Jenkins构建打包方便了开发人员冗余的打包操作 具体怎么使用呢 这里我们来了解一下 jenkins操作面板 这里有两个情况 1 如果打包配置里已经指定了打包分支 这里会显示 立即构建 2 如果配置了多个打包分支 这里会显示 Build
  • Qt relaease添加调试

    Qt relaease添加调试 设置Qt安装路径下mkspecs common msvc desktop conf里的内容 QMAKE CFLAGS RELEASE WITH DEBUGINFO QMAKE CFLAGS OPTIMIZE
  • AndroidManifest中activity属性参数设置大全

    activity属性设置大全 android alwaysRetainTaskState true false android clearTaskOnLaunch true false android configChanges mcc m
  • 多节锂电串联保护板ic_如何有效保护锂电池板,一款优质的MOS管就能解决

    锂电池几乎应用于我们日常接触到的各类电器之中 但如何保护锂电池 你又是否知道呢 其实在锂电池保护板 最主要的元器件是IC与MOS MOS对锂电池板的保护作用非常大 它可以检测过充电 检测过放电 检测充电时过电电流 检测放电时过电电流 检测短
  • 在vue项目中使用SockJS实现websocket通信

    1 引入SockJS 和Stomp npm install sockjs client npm install stompjs import SockJS from sockjs client import Stomp from stomp
  • python里面读取h5文件报错OSError: Can‘t read data (address of object past end of allocation)

    报错如下 File h5py objects pyx line 54 in h5py objects with phil wrapper File h5py objects pyx line 55 in h5py objects with
  • C#通过WEBREQUEST调用WEBSERVICE

    1 首先通过WSDL说明创建SOAP消息 XML 2 创建WEBREQUEST 将XML加入WEBREQUEST的RequestStream 3 通过WEBREQUEST的Write函数发起请求 4 通过WEBREQUEST的GetResp
  • C语言中的小数

    一个数字 是有默认类型的 对于整数 默认是 int 类型 对于小数 默认是 double 类型 小数分为两种类型 float 4字节 double 8字节 表现形式 十进制形式 4 023 75 0 0 27 指数形式 7 25 102 0
  • Python爬取个性签名

    coding utf 8 import tkinter from tkinter import from tkinter import messagebox import requests import re from PIL import