Python网络编程——urllib,urllib2(2),附带部分GUI基础

本篇博客是上篇博客的延续,涉及到的知识点除了上篇博客所提到的字典、web应用、模块/包的之外,还涉及到简单的抓包、正则表达式以及Python的GUI设计。

还是老样子,先讲点知识点,再来干货。

一、正则表达式

举个例子,假如我经营着一家大型的上市公司,而作为我的秘书,我需要你提供一份去年2月公司所接收以及发送的所有电子邮件(注意,我前面强调的是大型的上市公司,这意味着工作量将会很大,你不可能挨着去一封一封找出来),那么,如果你能设计一个计算机程序来收集这些信息然后转发给我这无疑要好很多。

正则表达式为高级的文本模式匹配、抽取、操作、与/或文本形式的搜索和替换功能提供了基础。简单地说,正则表达式就是有一些字符和特殊符号组成的字符串,它们描述了模式的重复或者表述多个字符,于是正则表达式能够按照一系列相似特征的字符串进行匹配。例如:

>>>example='abcdefg'

>>>m=re.compile(r'bcd')

>>>m.findall(m,a)

>>>print m

>>>bcd


在这儿需要解释的是r表示使用原始字符串,而compile(source, filename, mode[, flags[, dont_inherit]])是将source编译为代码或者AST对象。

二、抓包

百度:http://jingyan.baidu.com/article/3c343ff703fee20d377963e7.html

三、GUI设计

Tkinter是Python默认的GUI库,它基于TK工具包,能够快速开发和实现很多商业软件品质相当的GUI应用。

让GUI程序启动和运行起来需要以下5个步骤:

1、导入Tkinter模块

2、创建一个顶层窗口对象,用于容纳整个GUI应用。

3、在顶层窗口对象之上构建所有的GUI组件。

4、通过底层应用代码将这些组件组合起来。

5、进入主事件循环。

首先来个hello world:

>>>import Tkinter

>>>top=Tkinter.Tk()
>>>label=Tkinter.Label(top, text="hello world")
>>>label.pack()
>>>Tkinter.mainloop()




**********************************************************************************************************************************************************

好了,干货来了:

from Tkinter import *
import tkMessageBox
import re
import urllib,urllib2

def post(url,data):
	req=urllib2.Request(url)
	data=urllib.urlencode(data)
	html=urllib2.urlopen(url,data) 
	html=html.read()
	return html

def sheji():
	url="***************8"
	name=e1.get().encode("utf8")
	
	data={"id":****,
	"id1607":"<span style="font-family: Arial, Helvetica, sans-serif;">****</span><span style="font-family: Arial, Helvetica, sans-serif;">",</span>
	"id1606":"<span style="font-family: Arial, Helvetica, sans-serif;">****</span><span style="font-family: Arial, Helvetica, sans-serif;">",</span>
	"id1608":"jiqie_com",
	"id1":"30",
	"id2":"901",
	"id3":"#0000FF",
	"id4":"#0000DD",
	"id5":"#0000AA",
	"id6":"#000077"

	}
	text = post(url,data)
	return text

def img():
	photo = PhotoImage(file='%s.gif'%e1.get(),width="500",height="300")
	a2 = Label(image = photo)
	a2.image = photo
	a2.grid(row=0,column=10)

def cu():
	if e1.get()=="":
		tkMessageBox.showinfo("please input your name")
	else:
		text=sheji()

		reg=re.compile(r'***************')
		reg=re.findall(reg,text)
		imgurl = "******************8"+reg[0]
		urllib.urlretrieve(imgurl,e1.get()+".gif")
		img()

top=Tk()
top.title("python 练手")
top.geometry("+400+200")
top.resizable(width=False,height=False)
a1=Label(top,text="姓名")
a1.grid(row=0,column=0)

e1=Entry(top)
e1.grid(column=1,row=0)

b=Button(top,text="签名设计",command=cu)
b.grid(row=2,column=1)
top.mainloop()





**********************************************************************************************************************************************************




博客中的知识点来源:

核心编程

潭州公开课视频

Python编程实践

Python数据采集

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值