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中特殊函数集锦
Jul 27 Python
python多线程之事件Event的使用详解
Apr 27 Python
用于业余项目的8个优秀Python库
Sep 21 Python
python requests爬取高德地图数据的实例
Nov 10 Python
python 2.7 检测一个网页是否能正常访问的方法
Dec 26 Python
python读写csv文件实例代码
Jul 05 Python
Python实现Restful API的例子
Aug 31 Python
Python如何访问字符串中的值
Feb 09 Python
基于python连接oracle导并出数据文件
Apr 28 Python
Jmeter调用Python脚本实现参数互相传递的实现
Jan 22 Python
Python max函数中key的用法及原理解析
Jun 26 Python
Python进程间的通信之语法学习
Apr 11 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 zlib扩展实现页面GZIP压缩输出
2010/06/17 PHP
ThinkPHP控制器间实现相互调用的方法
2014/10/31 PHP
php二维数组合并及去重复的方法
2015/03/04 PHP
跨浏览器PHP下载文件名中的中文乱码问题解决方法
2015/03/05 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
TNC vs IO BO3 第二场2.13
2021/03/10 DOTA
javascript new fun的执行过程
2010/08/05 Javascript
jquery根据name属性查找的小例子
2013/11/21 Javascript
js操作模态窗口及父子窗口间相互传值示例
2014/06/09 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
2014/06/14 Javascript
node.js中的fs.readFileSync方法使用说明
2014/12/15 Javascript
分享jQuery插件的学习笔记
2016/01/14 Javascript
详解XMLHttpRequest(一)同步请求和异步请求
2016/09/14 Javascript
JQuery Ajax 异步操作之动态添加节点功能
2017/05/24 jQuery
微信小程序之电影影评小程序制作代码
2017/08/03 Javascript
微信小程序中进行地图导航功能的实现方法
2018/06/29 Javascript
Cocos2d实现刮刮卡效果
2018/12/20 Javascript
如何使用Node.js爬取任意网页资源并输出PDF文件到本地
2019/06/17 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
2019/09/21 Javascript
[40:55]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#4Newbee VS Fnatic
2016/03/03 DOTA
Python Tkinter简单布局实例教程
2014/09/03 Python
python中的字典操作及字典函数
2018/01/03 Python
详解PANDAS 数据合并与重塑(join/merge篇)
2019/07/09 Python
Python使用python-docx读写word文档
2019/08/26 Python
python -v 报错问题的解决方法
2020/09/15 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
HTML5中div、article、section的区别及使用介绍
2013/08/14 HTML / CSS
意大利高端时尚买手店:Stefania Mode
2018/03/01 全球购物
可持续木材、生态和铝制太阳镜:Proof Eyewear
2019/07/24 全球购物
意大利值得信赖的在线超级药房:PillolaStore
2020/02/05 全球购物
简历中自我评价分享
2013/10/09 职场文书
教师求职自荐信
2014/03/09 职场文书
表彰大会主持词
2014/03/26 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/10/28 职场文书
python数据库批量插入数据的实现(executemany的使用)
2021/04/30 Python
nginx日志格式分析和修改
2022/04/28 Servers