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界面相关推荐

  1. Python爬虫实战——签名软件设计(一)python POST模拟网页按钮点击

    Python爬虫实战(windows) 关于本文: 上一篇文章介绍了如何使用python爬虫进行网页图片等素材的抓取.我们以爬虫抓取作为基础,结合GUI设计,再通过自定义方法,就可以实现一些小软件的设 ...

  2. Python爬虫实战之二 - 基于Scrapy框架抓取Boss直聘的招聘信息

    Python爬虫实战之三 - 基于Scrapy框架抓取Boss直聘的招聘信息 ---------------readme--------------- 简介:本人产品汪一枚,Python自学数月,对于 ...

  3. Python爬虫实战之二:requests-爬取亚马逊商品详情页面

    本实战项目是中国大学MOOC国家精品课程<Python网络爬虫与信息提取>(by 嵩天 北京理工大学)学习笔记.代码段均可在ide中运行by now(2021-11-29). 目录 1.爬 ...

  4. python爬虫实战之异步爬取数据

    python爬虫实战之异步爬取数据 文章目录 前言 一.需求 二.使用步骤 1.思路 2.引入库 3.代码如下 总结 前言 python中异步编程的主要三种方法:回调函数.生成器函数.线程大法. 以进 ...

  5. Python爬虫实战之(五)| 模拟登录wechat

    作者:xiaoyu 微信公众号:Python数据科学 知乎:Python数据分析师 不知何时,微信已经成为我们不可缺少的一部分了,我们的社交圈.关注的新闻或是公众号.还有个人信息或是隐私都被绑定在了一 ...

  6. Python爬虫实战之(五)| 模拟登录wechat 1

    作者:xiaoyu 微信公众号:Python数据科学 知乎:Python数据分析师 不知何时,微信已经成为我们不可缺少的一部分了,我们的社交圈.关注的新闻或是公众号.还有个人信息或是隐私都被绑定在了一 ...

  7. 转 Python爬虫实战一之爬取糗事百科段子

    静觅 » Python爬虫实战一之爬取糗事百科段子 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 友情提示 糗事百科在前一段时间进行了改版,导致 ...

  8. 视频教程-Python爬虫实战视频教程-Python

    Python爬虫实战视频教程 东北大学计算机专业硕士研究生,欧瑞科技创始人&CEO,曾任国内著名软件公司项目经理,畅销书作者,企业IT内训讲师,CSDN学院专家讲师,制作视频课程超过1000小 ...

  9. 牛逼了!100份Python爬虫实战源码+视频,开放获取

    这是之前总结的一些Python爬虫实战源码和视频,另外还总结了一些Python学习的知识手册,从Python基础.到web开发.数据分析.机器学习.深度学习.金融量化统统都有,该手册是HTML版本,左 ...

最新文章

  1. java c 解决方案_Java jdk安装及javac命令无效解决方案
  2. pythonturtle是标准库_Python中turtle库的使用
  3. 究竟什么是云原生DevOps呢?
  4. 一步步编写操作系统 23 重写主引导记录mbr
  5. netbios 和smb
  6. Python学习笔记——算术操作符和优先级问题
  7. MTK 驱动开发 (1)---GPIO架构
  8. Asp.net2005 使用 NVelocity 实现 MVC
  9. 深入理解JVM(第二版读书笔记)
  10. xp系统支持64g内存_让WindowsXP SP3支持64G内存,继续发回余热
  11. MQTT 基础--MQTT 协议简介 :第 1 部分
  12. 什么是安迪比尔定理?
  13. 刚刚!百度副总裁被抓!
  14. 马云的至暗时刻:支付宝事件、十月围城 | 阿里巴巴20年
  15. react 中的闭包陷阱
  16. 人工智能算法对发明创造的知识产权保护
  17. 冯诺依曼原理奠定了至今仍然在使用的计算机,计算机二级MS-Office真题「选择题」...
  18. 毕节一中2021高考成绩查询,毕节第一中学2021年招生录取分数线
  19. grafana bar gauge使用问题
  20. 优脍国际集团旗下株肉Z-Rou Meat品牌与威定海鲜IS Seafood签订分销协议

热门文章

  1. 谈谈我的PS修图之旅
  2. 手机端也能免费查看CAD图纸啦!
  3. HTC G10 官方rom
  4. 设置win7任务栏显示标题,而不是显示缩略图
  5. 爆款办公神器,你知道吗
  6. 百度导航NaviDemo分析
  7. 怎样恢复移动硬盘数据
  8. 机器人制作入门--初学者
  9. 如何处理数据集中的缺失数据
  10. VSCode窗口全部字体大小缩放设置 - 快捷键