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编写一个每天都在系统下新建一个文件夹的脚本
May 04 Python
python返回昨天日期的方法
May 13 Python
Python实现获取邮箱内容并解析的方法示例
Jun 16 Python
解决Django生产环境无法加载静态文件问题的解决
Apr 23 Python
Pycharm简单使用教程(入门小结)
Jul 04 Python
关于阿里云oss获取sts凭证 app直传 python的实例
Aug 20 Python
Python实现TCP通信的示例代码
Sep 09 Python
Python绘制组合图的示例
Sep 18 Python
Python爬虫入门教程02之笔趣阁小说爬取
Jan 24 Python
python 实现定时任务的四种方式
Apr 01 Python
详解Python 3.10 中的新功能和变化
Apr 28 Python
使用Pytorch训练two-head网络的操作
May 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
基于mysql的bbs设计(五)
2006/10/09 PHP
简单采集了yahoo的一些数据
2007/02/14 PHP
网页游戏开发入门教程二(游戏模式+系统)
2009/11/02 PHP
phpexcel导出excel的颜色和网页中的颜色显示不一致
2012/12/11 PHP
Yii实现多按钮保存与提交的方法
2014/12/03 PHP
实例分析基于PHP微信网页获取用户信息
2017/11/24 PHP
Windows Live的@live.com域名注册漏洞 利用代码
2006/12/27 Javascript
jquery实现翻动fadeIn显示的方法
2015/03/05 Javascript
js面向对象之公有、私有、静态属性和方法详解
2015/04/17 Javascript
jquery使用经验小结
2015/05/20 Javascript
js实现表格筛选功能
2017/01/18 Javascript
详解微信小程序调起键盘性能优化
2018/07/24 Javascript
原生js实现二级联动菜单
2019/11/27 Javascript
vue基于better-scroll实现左右联动滑动页面
2020/06/30 Javascript
Python 异常处理实例详解
2014/03/12 Python
linux 下实现python多版本安装实践
2014/11/18 Python
使用Python的Twisted框架编写简单的网络客户端
2015/04/16 Python
基于Python实现下载网易音乐代码实例
2020/08/10 Python
Pandas对每个分组应用apply函数的实现
2020/12/13 Python
GUESS Factory加拿大:牛仔裤、服装及配饰
2019/09/20 全球购物
英国最好的包装供应商:Priory Direct
2019/12/17 全球购物
自主招生自荐书
2013/11/29 职场文书
单位领导证婚词
2014/01/14 职场文书
酒店行政人事部经理职务说明书
2014/02/26 职场文书
安全承诺书范文
2014/03/26 职场文书
普通党员自我剖析材料
2014/10/07 职场文书
处级干部考察材料
2014/12/24 职场文书
中考学习决心书
2015/02/04 职场文书
试用期自我评价范文
2015/03/10 职场文书
初三英语教学反思
2016/02/15 职场文书
竞聘演讲报告:基本写作有哪些?附开头范文
2019/10/16 职场文书
Golang全局变量加锁的问题解决
2021/05/08 Golang
分析Netty直接内存原理及应用
2021/06/14 Java/Android
nginx静态资源的服务器配置方法
2022/07/07 Servers
Java 中的 Lambda List 转 Map 的多种方法详解
2022/07/07 Java/Android
Promise静态四兄弟实现示例详解
2022/07/07 Javascript