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命令行参数解析OptionParser类用法实例
Oct 09 Python
python刷投票的脚本实现代码
Nov 08 Python
Python实现线程池代码分享
Jun 21 Python
Python中的一些陷阱与技巧小结
Jul 10 Python
浅谈配置OpenCV3 + Python3的简易方法(macOS)
Apr 02 Python
Python利用pandas计算多个CSV文件数据值的实例
Apr 19 Python
好的Python培训机构应该具备哪些条件
May 23 Python
详解Python3序列赋值、序列解包
May 14 Python
Python实现一个数组除以一个数的例子
Jul 20 Python
PyTorch之图像和Tensor填充的实例
Aug 18 Python
python 函数中的参数类型
Feb 11 Python
python 将列表里的字典元素合并为一个字典实例
Sep 01 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优于Node.js的五大理由分享
2012/09/15 PHP
PHP调用VC编写的COM组件实例
2014/03/29 PHP
php自定义截取中文字符串-utf8版
2017/02/27 PHP
PHP利用递归函数实现无限级分类的方法
2019/03/22 PHP
Autocomplete Textbox Example javascript实现自动完成成功
2007/08/17 Javascript
JavaScript 封装Ajax传递的数据代码
2009/06/05 Javascript
40款非常棒的jQuery 插件和制作教程(系列二)
2011/11/02 Javascript
jquery文本框中的事件应用以输入邮箱为例
2014/05/06 Javascript
编程语言JavaScript简介
2014/10/16 Javascript
jQuery EasyUI datagrid实现本地分页的方法
2015/02/13 Javascript
jQuery插件multiScroll实现全屏鼠标滚动切换页面特效
2015/04/12 Javascript
JavaScript中setFullYear()方法的使用详解
2015/06/11 Javascript
JavaScript编程的单例设计模讲解
2015/11/10 Javascript
AngularJS 入门教程之HTML DOM实例详解
2016/07/28 Javascript
jQuery图片加载显示loading效果
2016/11/04 Javascript
浅谈Vue父子组件和非父子组件传值问题
2017/08/22 Javascript
解决Jquery下拉框数据动态获取的问题
2018/01/25 jQuery
微信小程序数字滚动插件使用详解
2018/02/02 Javascript
如何能分清npm cnpm npx nvm
2019/01/17 Javascript
简单介绍Python中的round()方法
2015/05/15 Python
浅谈python中copy和deepcopy中的区别
2017/10/23 Python
python操作oracle的完整教程分享
2018/01/30 Python
python基于物品协同过滤算法实现代码
2018/05/31 Python
Python+selenium 获取一组元素属性值的实例
2018/06/22 Python
Python 对输入的数字进行排序的方法
2018/06/23 Python
python操作小程序云数据库实现简单的增删改查功能
2019/06/06 Python
基于spring boot 日志(logback)报错的解决方式
2020/02/20 Python
Python3标准库之dbm UNIX键-值数据库问题
2020/03/24 Python
python求numpy中array按列非零元素的平均值案例
2020/06/08 Python
京东港澳售:京东直邮港澳台
2018/01/31 全球购物
Bally巴利英国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/07 全球购物
英国玛莎百货澳大利亚:Marks & Spencer Australia
2019/08/30 全球购物
护理专业应届毕业生推荐信
2013/11/15 职场文书
大学生作弊检讨书
2014/09/11 职场文书
有限责任公司股东合作协议书范本
2014/10/30 职场文书
Pytorch DataLoader shuffle验证方式
2021/06/02 Python