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 相关文章推荐
linux 下实现python多版本安装实践
Nov 18 Python
python实现合并两个数组的方法
May 16 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
Apr 11 Python
python网络爬虫学习笔记(1)
Apr 09 Python
python3调用百度翻译API实现实时翻译
Aug 16 Python
pycham查看程序执行的时间方法
Nov 29 Python
Django model select的多种用法详解
Jul 16 Python
python路径的写法及目录的获取方式
Dec 26 Python
Pycharm打开已有项目配置python环境的方法
Jul 03 Python
Django def clean()函数对表单中的数据进行验证操作
Jul 09 Python
python将数据插入数据库的代码分享
Aug 16 Python
python基于Kivy写一个图形桌面时钟程序
Jan 28 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
escape unescape的php下的实现方法
2007/04/27 PHP
php查询whois信息的方法
2015/06/08 PHP
CodeIgniter框架基本增删改查操作示例
2017/03/23 PHP
PHP简单实现解析xml为数组的方法
2018/05/02 PHP
jQuery实现表头固定效果的实例代码
2013/05/24 Javascript
使用upstart把nodejs应用封装为系统服务实例
2014/06/01 NodeJs
基于jquery实现图片放大功能
2016/05/07 Javascript
全面了解JavaScript对象进阶
2016/07/19 Javascript
HTML的select控件美化
2017/03/27 Javascript
React中上传图片到七牛的示例代码
2017/10/10 Javascript
vue实现模态框的通用写法推荐
2018/02/26 Javascript
node将geojson转shp返回给前端的实现方法
2019/05/29 Javascript
简述pm2常用命令集合及配置文件说明
2019/05/30 Javascript
简单了解JavaScript sort方法
2019/11/25 Javascript
微信小程序实现翻牌抽奖动画
2020/09/21 Javascript
移动端JS实现拖拽两种方法解析
2020/10/12 Javascript
python使用PIL缩放网络图片并保存的方法
2015/04/24 Python
python逐行读写txt文件的实例讲解
2018/04/03 Python
python做接口测试的必要性
2019/11/20 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
2020/04/27 Python
Keras实现将两个模型连接到一起
2020/05/23 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
2020/06/10 Python
读取nii或nii.gz文件中的信息即输出图像操作
2020/07/01 Python
用于ETL的Python数据转换工具详解
2020/07/21 Python
为你的html5网页添加音效示例
2014/04/03 HTML / CSS
巴塞罗那观光通票:Barcelona Pass
2019/10/30 全球购物
莫斯科大型旅游休闲商品超市:Camping.ru
2020/09/16 全球购物
水污染治理专业毕业生推荐信
2013/11/14 职场文书
护士进修自我鉴定
2014/02/07 职场文书
应届毕业生求职信
2014/05/26 职场文书
通信工程求职信
2014/07/16 职场文书
2014年内勤工作总结
2014/11/24 职场文书
亮剑观后感600字
2015/06/05 职场文书
2015年庆祝国庆节66周年演讲稿
2015/07/30 职场文书
Python中for后接else的语法使用
2021/05/18 Python
修改MySQL的默认密码的四种小方法
2021/05/26 MySQL