python学习笔记三(网络编程初步)

最近有些最基础python爬虫的需求,也就是打开个网页,正则匹配想要的字符串。在使用的过程中有些糊涂,对urllib、urllib2、httplib等模块分不清楚,要是加上代理的话就更不明白了。今天抽时间看了下这部分的东西,简单的总结下。

很多工具书上面讲这部分内容的时候都带上socket,跟C代码差不多,鉴于和最近需求不搭边,先跳过这部分,有机会再深入研究。

1、urllib

dir()查看了下该模块提供的方法,平时用到的估计只有quote、urlencode、urlopen、urlretrieve

前两个是对url编码的,具体来讲quote函数是对字符串编码;urlencode函数则是对一个字典进行编码,通常和urllib2结合使用。具体用法后面贴代码。

urlopen和urlretrieve函数则是操作远程文件的(貌似本地的也可以),urlopen简单理解为打开文件,urlretrieve则可以将远程文件下载到本地

# encoding: UTF-8 
import urllib

def cbk(p1,p2,p3):
    print p3
    per = 100.0 * p1 * p2 / p3
    if per > 100:
        per = 100
    print '%.2f%%' % per

url = 'http://www.baxdu.com'
google = urllib.urlopen(url)
print google.read()
urllib.urlretrieve(url,'e:\\baidu.html',cbk)
urlretrieve第三个参数为一个回调函数,当连接上服务器、以及相应的数据块传输完毕的时候会触发该回调。

2、urllib2

该模块个人觉得很强大,直接贴代码。

# encoding: UTF-8 
import urllib,urllib2
import cookielib

data = {
    'key1':12,
    'key2':'test'
}
payload = urllib.urlencode(data)
headers= {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'}
url = 'http://www.xxx.com/'
cookie_support = urllib2.HTTPCookieProcessor(cookielib.CookieJar())
proxy_support = urllib2.ProxyHandler({"http":"http://12.33.44.5.:80/"})
opener = urllib2.build_opener(cookie_support, proxy_support)
# urllib2.install_opener(opener)
request = urllib2.Request(url, payload, headers=headers)
dataRes = opener.open(request, timeout=10).read()
print dataRes
该模块可以post数据、设置cookie、添加代理等,这些功能是urllib所没有的。但是urlencode还得urilib提供,貌似python3.0后就将这两个合并了。

3、其他

本来打算写下httplib和httplib2的,感觉这部分不怎么会用到了,那这次就不略过。另外有一个urlparse的模块,感觉还不错。网络编程还有其他东西,得边学变积累了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值