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. 2021年大数据基础(五):​​​​​​​​​​​​​​​​​​​​​分布式技术
  2. 【Java基础】异常
  3. Python基础教程第1章:基础知识---学习记录
  4. 编写高质量代码:改善Java程序的151个建议(第3章:类、对象及方法___建议36~40)
  5. Pollar Rho算法
  6. Mac电脑Docker拉取Mysql报错?no matching manifest for linux/arm64/v8 in the manifest list entries
  7. 如何正确获取安卓内置SD卡的路径
  8. C# WinForm 为 RichTextBox 添加行号小技巧
  9. CSS利用checkbook实现开关按钮
  10. MongoDB 使用Index
  11. 浙江大学计算机2018分数线,浙江大学2018多少录取分数线
  12. elasticsearch 使用
  13. 绕坐标轴以及任意轴的旋转矩阵的推导
  14. ToolBar修改返回按钮图标
  15. 致远项目管理SPM系统资源管理之资源台班工时管理
  16. 交房后如何在手机上办理产权证,线上办理总耗时约6天拿到证书
  17. 采用计算机辅助数据收集,可用性测试中计算机辅助数据收集和分析机制研究
  18. ACCESS年月日时分秒格式化语句
  19. Django 项目管理
  20. Android转场动画(View Activity ARouter)

热门文章

  1. 小学音乐利用计算机教学设计,外婆的澎湖湾公开课,怎么利用技术多媒体小学音乐教学设计...
  2. python的concatetate_Python tensorflow.truncated_normal_initializer方法代碼示例
  3. arm ds开发基于iTOP4412开发板的纯汇编LED流水灯
  4. 人不管在哪里,都要持续努力
  5. ios中图片不加载或加载失败
  6. php分割中文字符串(1个字,多个字)
  7. ZYNQ进阶之路14--PS端uart串口接收不定长数据
  8. java guid_细说Java生成GUID的实现方法
  9. 模拟演讲者视图_PPT中设置演讲者视图的方法
  10. html原理图,HTML5画电路图