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中的五种异常处理机制介绍
Sep 02 Python
详解Python中的Cookie模块使用
Jul 06 Python
学习python之编写简单乘法口诀表实现代码
Feb 27 Python
Python队列的定义与使用方法示例
Jun 24 Python
Python针对给定列表中元素进行翻转操作的方法分析
Apr 27 Python
Python实现压缩文件夹与解压缩zip文件的方法
Sep 01 Python
python 将字符串完成特定的向右移动方法
Jun 11 Python
Python语法分析之字符串格式化
Jun 13 Python
用pyqt5 给按钮设置图标和css样式的方法
Jun 24 Python
python获取依赖包和安装依赖包教程
Feb 13 Python
python将logging模块封装成单独模块并实现动态切换Level方式
May 12 Python
K近邻法(KNN)相关知识总结以及如何用python实现
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
关于PHP实现异步操作的研究
2013/02/03 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
2013/04/26 PHP
thinkPHP统计排行与分页显示功能示例
2016/12/02 PHP
php常用数组函数实例小结
2016/12/29 PHP
extjs DataReader、JsonReader、XmlReader的构造方法
2009/11/07 Javascript
javascript 主动派发事件总结
2011/08/09 Javascript
改变隐藏的input中value值的方法
2014/03/19 Javascript
JavaScript优化专题之Loading and Execution加载和运行
2016/01/20 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
2016/07/12 Javascript
详解AngularJS验证、过滤器、指令
2017/01/04 Javascript
深入理解vue中的$set
2017/06/01 Javascript
react-router中的属性详解
2017/06/01 Javascript
基于Vue实现支持按周切换的日历
2020/09/24 Javascript
vue下载excel的实现代码后台用post方法
2019/05/10 Javascript
React Native 混合开发多入口加载方式详解
2019/09/23 Javascript
JS如何在不同平台实现多语言方式
2020/07/16 Javascript
原生js实现表格翻页和跳转
2020/09/29 Javascript
2018年Python值得关注的开源库、工具和开发者(总结篇)
2018/01/04 Python
Python+OpenCV目标跟踪实现基本的运动检测
2018/07/10 Python
Python-Seaborn热图绘制的实现方法
2019/07/15 Python
使用darknet框架的imagenet数据分类预训练操作
2020/07/07 Python
python 实现&quot;神经衰弱&quot;翻牌游戏
2020/11/09 Python
html5使用canvas绘制一张图片
2014/12/15 HTML / CSS
Alba Moda瑞士网上商店:独家意大利时尚女装销售
2016/11/28 全球购物
英国健康和美容技术产品购物网站:CurrentBody
2019/07/17 全球购物
幼儿园大班新学期寄语
2014/01/18 职场文书
2014年上半年工作自我评价
2014/01/18 职场文书
留学推荐信中文范文三篇
2014/01/25 职场文书
支部书记四风问题自我剖析材料
2014/09/29 职场文书
综合办公室岗位职责
2015/04/11 职场文书
2016教师六五普法学习心得体会
2016/01/21 职场文书
学会掌握自己命运的十条黄金法则:
2019/08/08 职场文书
详解Mysql 函数调用优化
2021/04/07 MySQL
mybatis3中@SelectProvider传递参数方式
2021/08/04 Java/Android
Python 数据结构之十大经典排序算法一文通关
2021/10/16 Python
解决vue中provide inject的响应式监听
2022/04/19 Vue.js