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中使用OpenCV进行人脸检测的例子
Apr 18 Python
基于Python实现通过微信搜索功能查看谁把你删除了
Jan 27 Python
轻松实现python搭建微信公众平台
Feb 16 Python
Python计算开方、立方、圆周率,精确到小数点后任意位的方法
Jul 17 Python
对python3中pathlib库的Path类的使用详解
Oct 14 Python
记一次python 内存泄漏问题及解决过程
Nov 29 Python
40个你可能不知道的Python技巧附代码
Jan 29 Python
django 装饰器 检测登录状态操作
Jul 02 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
Sep 05 Python
python 字符串格式化的示例
Sep 21 Python
Python 如何实现文件自动去重
Jun 02 Python
python 判断文件或文件夹是否存在
Mar 18 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
CentOS安装php v8js教程
2015/02/26 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
2019/05/29 PHP
WEB 浏览器兼容 推荐收藏
2010/05/14 Javascript
jquery获取自定义属性(attr和prop)实例介绍
2013/04/21 Javascript
深入理解Javascript中的循环优化
2013/11/09 Javascript
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
基于jQuery创建鼠标悬停效果的方法
2015/03/07 Javascript
纯JS前端实现分页代码
2016/06/21 Javascript
AngularJS入门教程之过滤器详解
2016/08/19 Javascript
Bootstrap缩略图的创建方法
2017/03/22 Javascript
在vue.js中抽出公共代码的方法示例
2017/06/08 Javascript
javascript Function函数理解与实战
2017/12/01 Javascript
JavaScript实现二叉树定义、遍历及查找的方法详解
2017/12/20 Javascript
JS实现调用本地摄像头功能示例
2018/05/18 Javascript
浅谈React之状态(State)
2018/09/19 Javascript
jQuery轻量级表单模型验证插件
2018/10/15 jQuery
使用rollup打包JS的方法步骤
2018/12/05 Javascript
js的新生代垃圾回收知识点总结
2019/08/22 Javascript
Vue.js自定义指令学习使用详解
2019/10/19 Javascript
JS函数基本定义与用法示例
2020/01/15 Javascript
Javascript ParentNode和ChildNode接口原理解析
2020/03/16 Javascript
使用Python编写类UNIX系统的命令行工具的教程
2015/04/15 Python
Python中的anydbm模版和shelve模版使用指南
2015/07/09 Python
详解Python如何获取列表(List)的中位数
2016/08/12 Python
Python 实现子类获取父类的类成员方法
2019/01/11 Python
Python中断多重循环的几种方式详解
2020/02/10 Python
html5使用canvas绘制文字特效
2014/12/15 HTML / CSS
Belle Maison倍美丛官网:日本千趣会旗下邮购网站
2016/07/22 全球购物
建筑经济管理专业求职信分享
2014/01/06 职场文书
和谐社区口号
2014/06/19 职场文书
美德少年事迹材料500字
2014/08/19 职场文书
审计局2014法制宣传日活动总结
2014/11/01 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
常住证明范本
2015/06/23 职场文书
多台电脑共享文件怎么设置?多台电脑共享文件操作教程
2022/04/08 数码科技