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的Django框架中编写错误提示页面
Jul 22 Python
Python 字符串换行的多种方式
Sep 06 Python
破解安装Pycharm的方法
Oct 19 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
Dec 31 Python
使用python实现mqtt的发布和订阅
May 05 Python
pytorch 共享参数的示例
Aug 17 Python
Python 字符串、列表、元组的截取与切片操作示例
Sep 17 Python
python操作docx写入内容,并控制文本的字体颜色
Feb 13 Python
Python pandas 列转行操作详解(类似hive中explode方法)
May 18 Python
Python多线程threading创建及使用方法解析
Jun 17 Python
python自动化测试三部曲之request+django实现接口测试
Oct 07 Python
Python学习工具jupyter notebook安装及用法解析
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
咖啡界又出新概念,无需咖啡豆的分子咖啡
2021/03/03 咖啡文化
解析PHP中常见的mongodb查询操作
2013/06/20 PHP
PHP代码优化之成员变量获取速度对比
2014/02/28 PHP
浅析PHP微信支付通知的处理方式
2014/05/25 PHP
CodeIgniter实现更改view文件夹路径的方法
2014/07/04 PHP
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
2014/12/09 PHP
php封装的单文件(图片)上传类完整实例
2016/10/18 PHP
jquery1.4.2 for Visual studio 2010 模板文件
2010/07/14 Javascript
解决js正则匹配换行问题实现代码
2012/12/10 Javascript
$.getJSON在IE下失效的原因分析及解决方法
2013/06/16 Javascript
Javascript闭包(Closure)详解
2015/05/05 Javascript
微信小程序 配置文件详细介绍
2016/12/14 Javascript
在Vue中使用axios请求拦截的实现方法
2018/10/25 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&amp;平移轮播效果
2019/08/16 Javascript
解决vue-router路由拦截造成死循环问题
2020/08/05 Javascript
解决vue项目打包上服务器显示404错误,本地没出错的问题
2020/11/03 Javascript
对于Python中线程问题的简单讲解
2015/04/03 Python
Pycharm学习教程(3) 代码运行调试
2017/05/03 Python
Django实现的自定义访问日志模块示例
2017/06/23 Python
python 通过字符串调用对象属性或方法的实例讲解
2018/04/21 Python
Python3实现的简单验证码识别功能示例
2018/05/02 Python
基于python连接oracle导并出数据文件
2020/04/28 Python
Python如何输出整数
2020/06/07 Python
Python如何读取、写入JSON数据
2020/07/28 Python
Python实现加密的RAR文件解压的方法(密码已知)
2020/09/11 Python
5款实用的python 工具推荐
2020/10/13 Python
CSS3 flex布局之快速实现BorderLayout布局
2015/12/03 HTML / CSS
Nike香港官网:Nike HK
2019/03/23 全球购物
英国著名的美容护肤和护发产品购物网站:Lookfantastic
2020/11/23 全球购物
泰国排名第一的家居用品中心:HomePro
2020/11/18 全球购物
介绍Java的内部类
2012/10/27 面试题
舞蹈毕业生的自我评价
2014/03/05 职场文书
工作年限证明模板
2014/11/01 职场文书
初中班长竞选稿
2015/11/20 职场文书
怎样写好演讲稿题目?
2019/08/21 职场文书
古诗文之爱国名句(77句)
2019/09/24 职场文书