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 thread 并发且顺序运行示例
Apr 09 Python
python 正则式使用心得
May 07 Python
跟老齐学Python之编写类之四再论继承
Oct 11 Python
解决uWSGI的编码问题详解
Mar 24 Python
tensorflow实现softma识别MNIST
Mar 12 Python
python opencv判断图像是否为空的实例
Jan 26 Python
linux查找当前python解释器的位置方法
Feb 20 Python
如何用Python做一个微信机器人自动拉群
Jul 03 Python
python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例
Feb 27 Python
python爬虫实现POST request payload形式的请求
Apr 30 Python
Python flask路由间传递变量实例详解
Jun 03 Python
Python中zipfile压缩包模块的使用
May 14 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
实现dedecms全站URL静态化改造的代码
2007/03/29 PHP
PHP5 操作MySQL数据库基础代码
2009/09/29 PHP
php提示Warning:mysql_fetch_array() expects的解决方法
2014/12/16 PHP
PHP7新特性foreach 修改示例介绍
2016/08/26 PHP
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
jQuery使用动态渲染表单功能完成ajax文件下载
2013/01/15 Javascript
今天是星期几的4种JS代码写法
2013/09/17 Javascript
jquery检测input checked 控件是否被选中的方法
2014/03/26 Javascript
Jquery Ajax方法传值到action的方法
2014/05/11 Javascript
纯Javascript实现ping功能的方法
2015/03/20 Javascript
js+ajax实现获取文件大小的方法
2015/12/08 Javascript
Javascript实现鼠标框选操作  不是点击选取
2016/04/14 Javascript
浅谈jquery点击label触发2次的问题
2016/06/12 Javascript
微信小程序 wx:key详细介绍
2016/10/28 Javascript
JavaScript html5 canvas实现图片上画超链接
2017/10/20 Javascript
原生JS实现前端本地文件上传
2018/09/08 Javascript
微信小程序 JS动态修改样式的实现方法
2018/12/16 Javascript
layui上传图片到服务器的非项目目录下的方法
2019/09/26 Javascript
Vue axios与Go Frame后端框架的Options请求跨域问题详解
2020/03/03 Javascript
js+cavans实现图片滑块验证
2020/09/29 Javascript
[51:00]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
Python中的单继承与多继承实例分析
2018/05/10 Python
Python selenium抓取微博内容的示例代码
2018/05/17 Python
Django压缩静态文件的实现方法详析
2018/08/26 Python
3分钟学会一个Python小技巧
2018/11/23 Python
浅谈python 导入模块和解决文件句柄找不到问题
2018/12/15 Python
pandas.cut具体使用总结
2019/06/24 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
2019/08/08 Python
Python操作MySQL数据库实例详解【安装、连接、增删改查等】
2020/01/17 Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
2020/02/27 Python
python实现批量命名照片
2020/06/18 Python
Kent & Curwen:与大卫·贝克汉姆合作
2017/06/13 全球购物
档案管理员岗位职责
2013/12/01 职场文书
办理信用卡工作证明
2014/01/11 职场文书
小小的船教学反思
2014/02/21 职场文书
Redis持久化与主从复制的实践
2021/04/27 Redis