Python爬虫实战——签名软件设计(二)GUI界面
Python爬虫实战
关于本文:
上一篇文章我们介绍了POST方法的使用,现在我们就说一下界面设计以及方法的调用
使用模块
from Tkinter import *
import tkMessageBox
import urllib,urllib2,re
from PIL import Image
import requests
1.窗口的设计
代码解析
root = Tk()#创建窗口
root.title('python签名设计')
root.geometry('480x100+300+400')
Label(root,text='姓 名:',font=("微软雅黑",20),fg='red').grid()#文本框
nameent=Entry(root,font=("微软雅黑",20))
nameent.grid(row=0,column=1)
button =Button(root,text='一键设计签名',font=("微软雅黑",15),width='15',height='1',command=getImg)
button.grid(row=1,column=1)
mainloop()
第一行root = Tk()用于创建一个空白的窗口,作为主载体。代码第二行,第三行分别是对窗口进行命名以及设计窗口的初始大小,再屏幕中的位置。
第四行 Label(root,text=’姓 名:’,font=(“微软雅黑”,20),fg=’red’).grid() 在窗口中放置文本组件,文本的内容是“姓名:”,并且设置其大小字体和颜色。
第六行的Entry是设置一个可输入文本框,并将用户输入的数据保存在nameent变量中,在后面使用。
第八行Button是设置一个按钮,这里设置了按钮上的文字,大小,宽高以及点击按钮后调用的方法getImg。最后mainloop()的意义是使得窗口一直存在。
这样我们就设计完了一个简单功能的窗口了
2.获得我们的签名图
在点击了“一键设计签名”按钮后,程序就会为我们到网上去访问上一篇提到的网站,将请求头和参数POST上去,然后爬虫爬到图片,下载下来并打开。如下图:
代码解析
def getImg():name=nameent.get().encode('utf-8')if not name:tkMessageBox.showinfo('温馨提示','请先输入姓名!')returndata1={'word':'%s'%name,'sizes':'60','fonts':'jfcs.ttf','fontcolor':'# 000000',}header={'Host':'www.uustv.com','User-Agent':"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0",'Accept':"text/html,application/xhtml+x…lication/xml;q=0.9,*/*;q=0.8",'Accept-Language': "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",'Accept-Encoding': "gzip, deflate",'Referer':"http://www.uustv.com/",'Content-Type': "application/x-www-form-urlencoded",'Content-Length':"51",'Cookie':"bdshare_firstime=1499938694498",'Connection':"keep-alive",'Upgrade-Insecure-Requests':"1",'Cache-Control' :"max-age=0",}html1 = requests.post('http://www.uustv.com/',headers=header,data =data1)html = html1.textreg=r'<div class="tu">\xef\xbb\xbf<img src="(.*?)"/></div>'print htmlimgurl='http://www.uustv.com/%s' %re.findall(reg,html)[0]urllib.urlretrieve(imgurl,'D://%s.gif' %name.decode('utf-8').encode('gbk'))try:im=Image.open('%s.gif' %name.decode('utf-8').encode('gbk'))im.show()im.close()except Exception,e:print '请自行打开图片'
这里我们自定义一个getImg方法,使用name=nameent.get().encode(‘utf-8’)获得我们之前输入的name值,然后先判断有没有输入,如果用户没有输入就点击了按钮。就会弹出提示窗:
这一功能使用tkMessageBox实现。接下来就是使用requests库将数据与请求头发给网站,模拟用户在网站上的输入以及点击提交按钮。这样会返回提交后的网站源码存入html变量中,使用正则匹配找到图片的地址下载即可。(这方面有问题可看我的博客—— python爬虫:短代码实现多线程爬虫)
小结:
到这里我们的界面以及POST就介绍完了,下一篇文章会为大家介绍如何使用pyinstaller把py文件转成exe文件,实现在无python环境的电脑上的程序通用。
Python爬虫实战——签名软件设计(二)GUI界面相关推荐
- Python爬虫实战——签名软件设计(一)python POST模拟网页按钮点击
Python爬虫实战(windows) 关于本文: 上一篇文章介绍了如何使用python爬虫进行网页图片等素材的抓取.我们以爬虫抓取作为基础,结合GUI设计,再通过自定义方法,就可以实现一些小软件的设 ...
- Python爬虫实战之二 - 基于Scrapy框架抓取Boss直聘的招聘信息
Python爬虫实战之三 - 基于Scrapy框架抓取Boss直聘的招聘信息 ---------------readme--------------- 简介:本人产品汪一枚,Python自学数月,对于 ...
- Python爬虫实战之二:requests-爬取亚马逊商品详情页面
本实战项目是中国大学MOOC国家精品课程<Python网络爬虫与信息提取>(by 嵩天 北京理工大学)学习笔记.代码段均可在ide中运行by now(2021-11-29). 目录 1.爬 ...
- python爬虫实战之异步爬取数据
python爬虫实战之异步爬取数据 文章目录 前言 一.需求 二.使用步骤 1.思路 2.引入库 3.代码如下 总结 前言 python中异步编程的主要三种方法:回调函数.生成器函数.线程大法. 以进 ...
- Python爬虫实战之(五)| 模拟登录wechat
作者:xiaoyu 微信公众号:Python数据科学 知乎:Python数据分析师 不知何时,微信已经成为我们不可缺少的一部分了,我们的社交圈.关注的新闻或是公众号.还有个人信息或是隐私都被绑定在了一 ...
- Python爬虫实战之(五)| 模拟登录wechat 1
作者:xiaoyu 微信公众号:Python数据科学 知乎:Python数据分析师 不知何时,微信已经成为我们不可缺少的一部分了,我们的社交圈.关注的新闻或是公众号.还有个人信息或是隐私都被绑定在了一 ...
- 转 Python爬虫实战一之爬取糗事百科段子
静觅 » Python爬虫实战一之爬取糗事百科段子 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 友情提示 糗事百科在前一段时间进行了改版,导致 ...
- 视频教程-Python爬虫实战视频教程-Python
Python爬虫实战视频教程 东北大学计算机专业硕士研究生,欧瑞科技创始人&CEO,曾任国内著名软件公司项目经理,畅销书作者,企业IT内训讲师,CSDN学院专家讲师,制作视频课程超过1000小 ...
- 牛逼了!100份Python爬虫实战源码+视频,开放获取
这是之前总结的一些Python爬虫实战源码和视频,另外还总结了一些Python学习的知识手册,从Python基础.到web开发.数据分析.机器学习.深度学习.金融量化统统都有,该手册是HTML版本,左 ...
最新文章
- 2021年大数据基础(五):​​​​​​​​​​​​​​​​​​​​​分布式技术
- 【Java基础】异常
- Python基础教程第1章:基础知识---学习记录
- 编写高质量代码:改善Java程序的151个建议(第3章:类、对象及方法___建议36~40)
- Pollar Rho算法
- Mac电脑Docker拉取Mysql报错?no matching manifest for linux/arm64/v8 in the manifest list entries
- 如何正确获取安卓内置SD卡的路径
- C# WinForm 为 RichTextBox 添加行号小技巧
- CSS利用checkbook实现开关按钮
- MongoDB 使用Index
- 浙江大学计算机2018分数线,浙江大学2018多少录取分数线
- elasticsearch 使用
- 绕坐标轴以及任意轴的旋转矩阵的推导
- ToolBar修改返回按钮图标
- 致远项目管理SPM系统资源管理之资源台班工时管理
- 交房后如何在手机上办理产权证,线上办理总耗时约6天拿到证书
- 采用计算机辅助数据收集,可用性测试中计算机辅助数据收集和分析机制研究
- ACCESS年月日时分秒格式化语句
- Django 项目管理
- Android转场动画(View Activity ARouter)
热门文章
- 小学音乐利用计算机教学设计,外婆的澎湖湾公开课,怎么利用技术多媒体小学音乐教学设计...
- python的concatetate_Python tensorflow.truncated_normal_initializer方法代碼示例
- arm ds开发基于iTOP4412开发板的纯汇编LED流水灯
- 人不管在哪里,都要持续努力
- ios中图片不加载或加载失败
- php分割中文字符串(1个字,多个字)
- ZYNQ进阶之路14--PS端uart串口接收不定长数据
- java guid_细说Java生成GUID的实现方法
- 模拟演讲者视图_PPT中设置演讲者视图的方法
- html原理图,HTML5画电路图