python爬取个性签名的方法


Posted in Python onJune 17, 2018

本文实例为大家分享了python爬取个性签名的具体代码,具体内容如下

#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()
'''

以上全部为本篇文章的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python内置数据类型详解
Aug 18 Python
Pytorch入门之mnist分类实例
Apr 14 Python
Python图像处理之颜色的定义与使用分析
Jan 03 Python
Python设计模式之享元模式原理与用法实例分析
Jan 11 Python
PyTorch的深度学习入门之PyTorch安装和配置
Jun 27 Python
python在openstreetmap地图上绘制路线图的实现
Jul 11 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
Aug 05 Python
python函数声明和调用定义及原理详解
Dec 02 Python
python输入一个水仙花数(三位数) 输出百位十位个位实例
May 03 Python
使用Keras实现Tensor的相乘和相加代码
Jun 18 Python
Jupyter notebook 输出部分显示不全的解决方案
Apr 24 Python
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
Oct 16 Python
Python爬虫包BeautifulSoup学习实例(五)
Jun 17 #Python
Python爬虫包BeautifulSoup实例(三)
Jun 17 #Python
Python爬虫包BeautifulSoup异常处理(二)
Jun 17 #Python
Python爬虫包BeautifulSoup简介与安装(一)
Jun 17 #Python
python主线程捕获子线程的方法
Jun 17 #Python
Python实现获取邮箱内容并解析的方法示例
Jun 16 #Python
Python实现自定义函数的5种常见形式分析
Jun 16 #Python
You might like
PHP文件打开、关闭、写入的判断与执行代码
2011/05/24 PHP
PHP几个数学计算的内部函数学习整理
2011/08/06 PHP
codeigniter中实现一次性加载多个view的方法
2015/03/20 PHP
学习php设计模式 php实现备忘录模式(Memento)
2015/12/09 PHP
php微信公众号开发之校园图书馆
2018/10/20 PHP
用AJAX返回HTML片段中的JavaScript脚本
2010/01/04 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
2013/12/05 Javascript
js实现拖拽效果(构造函数)
2015/12/14 Javascript
不使用script导入js文件的几种方法
2016/10/27 Javascript
JavaScript实现图片瀑布流和底部刷新
2017/01/02 Javascript
详解Js中的模块化是如何实现的
2017/10/18 Javascript
vue+socket.io+express+mongodb 实现简易多房间在线群聊示例
2017/10/21 Javascript
微信小程序实现弹出菜单
2018/07/19 Javascript
20多个小事例带你重温ES10新特性(小结)
2019/09/29 Javascript
javascript实现下拉菜单效果
2021/02/09 Javascript
Python 爬虫的工具列表大全
2016/01/31 Python
十条建议帮你提高Python编程效率
2016/02/16 Python
python 使用get_argument获取url query参数
2017/04/28 Python
python虚拟环境virtualenv的安装与使用
2017/09/21 Python
Windows环境下python环境安装使用图文教程
2018/03/13 Python
Django框架实现逆向解析url的方法
2018/07/04 Python
python计算无向图节点度的实例代码
2019/11/22 Python
简单了解python元组tuple相关原理
2019/12/02 Python
pytorch 图像预处理之减去均值,除以方差的实例
2020/01/02 Python
python构造函数init实例方法解析
2020/01/19 Python
Python命名空间及作用域原理实例解析
2020/08/12 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
2020/11/24 Python
python用opencv 图像傅里叶变换
2021/01/04 Python
美国领先的医疗警报服务:Philips Lifeline
2018/03/12 全球购物
英国最大的在线快递公司之一:ParcelHero
2019/11/04 全球购物
毕业生的自我鉴定该怎么写
2013/12/02 职场文书
会计工作心得体会
2014/01/13 职场文书
2014年园林绿化工作总结
2014/12/11 职场文书
2016春节慰问信范文
2015/03/25 职场文书
Pytorch DataLoader shuffle验证方式
2021/06/02 Python
Python中的 enumerate和zip详情
2022/05/30 Python