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 cookielib 登录人人网的实现代码
Dec 19 Python
Python查看多台服务器进程的脚本分享
Jun 11 Python
横向对比分析Python解析XML的四种方式
Mar 30 Python
解决python matplotlib imshow无法显示的问题
May 24 Python
python爬取哈尔滨天气信息
Jul 14 Python
详解Python 装饰器执行顺序迷思
Aug 08 Python
浅谈Django中view对数据库的调用方法
Jul 18 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
Jul 30 Python
Python使用百度api做人脸对比的方法
Aug 28 Python
Keras实现支持masking的Flatten层代码
Jun 16 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
Dec 07 Python
Python爬虫实战之爬取京东商品数据并实实现数据可视化
Jun 07 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
简单谈谈favicon
2015/06/10 PHP
php使用escapeshellarg时中文被过滤的解决方法
2016/07/10 PHP
PHP连接MySQL数据库操作代码实例解析
2020/07/11 PHP
JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探
2010/01/22 Javascript
JavaScript高级程序设计(第3版)学习笔记 概述
2012/10/11 Javascript
js跳转页面方法总结
2014/01/29 Javascript
javascript中checkbox使用方法实例演示
2015/11/19 Javascript
基于jQuery实现美观且实用的倒计时实例代码
2015/12/30 Javascript
每个程序员都需要学习 JavaScript 的7个理由小结
2016/09/03 Javascript
jquery对所有input type=text的控件赋值实现方法
2016/12/02 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
解读vue生成的文件目录结构及说明
2017/11/27 Javascript
3种vue组件的书写形式
2017/11/29 Javascript
Vue隐藏显示、只读实例代码
2018/07/18 Javascript
JS打印彩色菱形的实例代码
2018/08/15 Javascript
在python的WEB框架Flask中使用多个配置文件的解决方法
2014/04/18 Python
python实现在字符串中查找子字符串的方法
2015/07/11 Python
在Python中使用正则表达式的方法
2015/08/13 Python
Python使用os模块和fileinput模块来操作文件目录
2016/01/19 Python
浅析python中SQLAlchemy排序的一个坑
2017/02/24 Python
浅谈Python里面小数点精度的控制
2018/07/16 Python
python实现石头剪刀布程序
2021/01/20 Python
pyqt5 从本地选择图片 并显示在label上的实例
2019/06/13 Python
HTML的form表单和django的form表单
2019/07/25 Python
pandas DataFrame的修改方法(值、列、索引)
2019/08/02 Python
Django实现基于类的分页功能
2019/10/31 Python
使用PyTorch训练一个图像分类器实例
2020/01/08 Python
python轮询机制控制led实例
2020/05/03 Python
python连接mongodb数据库操作数据示例
2020/11/30 Python
Html5移动端获奖无缝滚动动画实现示例
2018/06/25 HTML / CSS
门诊挂号室室长岗位职责
2013/11/27 职场文书
电大本科自我鉴定
2014/02/05 职场文书
鸟的天堂导游词
2015/01/31 职场文书
解决SpringCloud Feign传对象参数调用失败的问题
2021/06/23 Java/Android
Python中文纠错的简单实现
2021/07/07 Python
win server2012 r2服务器共享文件夹如何设置
2022/06/21 Servers