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接收Gmail新邮件并发送到gtalk的方法
Mar 10 Python
Python Paramiko模块的安装与使用详解
Nov 18 Python
python3实现TCP协议的简单服务器和客户端案例(分享)
Jun 14 Python
Python分治法定义与应用实例详解
Jul 28 Python
在cmd命令行里进入和退出Python程序的方法
May 12 Python
Python中is和==的区别详解
Nov 15 Python
django最快程序开发流程详解
Jul 19 Python
python用类实现文章敏感词的过滤方法示例
Oct 27 Python
PYTHON如何读取和写入EXCEL里面的数据
Oct 28 Python
Django2 连接MySQL及model测试实例分析
Dec 10 Python
python 多线程死锁问题的解决方案
Aug 25 Python
python文本处理的方案(结巴分词并去除符号)
May 26 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
Zend引擎的发展 [15]
2006/10/09 PHP
无数据库的详细域名查询程序PHP版(4)
2006/10/09 PHP
php抓取页面的几种方法详解
2013/06/17 PHP
PHP+MYSQL中文乱码问题
2015/07/01 PHP
表单元素事件 (Form Element Events)
2009/07/17 Javascript
js indexOf()定义和用法
2012/10/21 Javascript
js实现的切换面板实例代码
2013/06/17 Javascript
js中Image对象以及对其预加载处理示例
2013/11/20 Javascript
JS实现slide文字框缩放伸展效果代码
2015/11/05 Javascript
Angularjs中的事件广播 —全面解析$broadcast,$emit,$on
2016/05/17 Javascript
AngularJS执行流程详解
2017/02/17 Javascript
关于javascript获取内联样式与嵌入式样式的实例
2017/06/01 Javascript
bootstrap multiselect下拉列表功能
2017/08/22 Javascript
利用adb shell和node.js实现抖音自动抢红包功能(推荐)
2018/02/22 Javascript
JS常见DOM节点操作示例【创建 ,插入,删除,复制,查找】
2018/05/14 Javascript
Webpack之tree-starking 解析
2018/09/11 Javascript
Vue基于vuex、axios拦截器实现loading效果及axios的安装配置
2019/04/26 Javascript
使用express来代理服务的方法
2019/06/21 Javascript
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
JS根据Unix时间戳显示发布时间是多久前【项目实测】
2019/07/10 Javascript
微信小程序实现菜单左右联动
2020/05/19 Javascript
Element-UI 使用el-row 分栏布局的教程
2020/10/26 Javascript
python生成日历实例解析
2014/08/21 Python
利用Python学习RabbitMQ消息队列
2015/11/30 Python
在Python中构建增广矩阵的实现方法
2019/07/01 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
2020/04/07 Python
Python 可视化神器Plotly详解
2020/12/26 Python
波兰化妆品和护肤品购物网站:eKobieca
2019/08/30 全球购物
电气工程及其自动化学生实习自我鉴定
2013/09/19 职场文书
个人应聘自我评价分享
2013/11/18 职场文书
餐厅销售主管职责范本
2014/02/19 职场文书
建设办主任四风问题整改思路和措施
2014/09/20 职场文书
2014年班主任工作总结
2014/11/08 职场文书
培训通知
2015/04/17 职场文书
如何在Python中创建二叉树
2021/03/30 Python
.Net Core导入千万级数据至Mysql的步骤
2021/05/24 MySQL