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 相关文章推荐
go和python调用其它程序并得到程序输出
Feb 10 Python
Python xlrd读取excel日期类型的2种方法
Apr 28 Python
python文件的md5加密方法
Apr 06 Python
tensorflow创建变量以及根据名称查找变量
Mar 10 Python
对Python 语音识别框架详解
Dec 24 Python
pycharm远程开发项目的实现步骤
Jan 20 Python
局域网内python socket实现windows与linux间的消息传送
Apr 19 Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
Aug 13 Python
TensorFlow自定义损失函数来预测商品销售量
Feb 05 Python
Python Flask框架实现简单加法工具过程解析
Jun 03 Python
Pycharm Git 设置方法
Sep 15 Python
Python中免验证跳转到内容页的实例代码
Oct 23 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类的自动载入机制
2016/09/16 PHP
老生常谈PHP面向对象之标识映射
2017/06/21 PHP
JavaScript中的对象化编程
2008/01/16 Javascript
JQuery的read函数与js的onload不同方式实现
2013/03/18 Javascript
javascript判断非数字的简单例子
2013/07/18 Javascript
JS获取单击按钮单元格所在行的信息
2014/06/17 Javascript
nodejs命令行参数处理模块commander使用实例
2014/09/17 NodeJs
js点击选择文本的方法
2015/02/09 Javascript
jquery datatable服务端分页
2016/08/31 Javascript
Three.js获取鼠标点击的三维坐标示例代码
2017/03/24 Javascript
JS实现加载和读取XML文件的方法详解
2017/04/24 Javascript
实现单层json按照key字母顺序排序的示例
2017/12/06 Javascript
jQuery实现table表格信息的展开和缩小功能示例
2018/07/21 jQuery
Three.js实现简单3D房间布局
2018/12/30 Javascript
layui 实现加载动画以及非真实加载进度的方法
2019/09/23 Javascript
JS实现烟花爆炸效果
2020/03/10 Javascript
详解vue父子组件状态同步的最佳方式
2020/09/10 Javascript
js实现随机圆与矩形功能
2020/10/29 Javascript
[01:01:25]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第三局
2016/02/27 DOTA
Python版的文曲星猜数字游戏代码
2013/09/02 Python
在Python中使用zlib模块进行数据压缩的教程
2015/06/26 Python
Python读写txt文本文件的操作方法全解析
2016/06/26 Python
python安装模块如何通过setup.py安装(超简单)
2018/05/05 Python
python3 flask实现文件上传功能
2020/03/20 Python
Python3+Appium实现多台移动设备操作的方法
2019/07/05 Python
Tensorflow 自定义loss的情况下初始化部分变量方式
2020/01/06 Python
PyTorch之nn.ReLU与F.ReLU的区别介绍
2020/06/27 Python
英国珠宝和手表专家:Pleasance & Harper
2020/10/21 全球购物
初中生物教学反思
2014/01/10 职场文书
迟到检讨书5000字
2014/01/31 职场文书
计算机专业应届生求职信
2014/04/06 职场文书
学校运动会霸气口号
2014/06/07 职场文书
教师职业道德事迹材料
2014/08/18 职场文书
2014年女职工工作总结
2014/11/27 职场文书
工作保证书怎么写
2015/02/28 职场文书
SpringCloud超详细讲解Feign声明式服务调用
2022/06/21 Java/Android