Python urllib与urllib2
2014-03-10 09:31
267 查看
Python中包含了两个网络模块,分别是urllib与urllib2,urllib2是urllib的升级版,拥有更强大的功能。urllib,让我们可以像读文件一样,读取http与ftp。而urllib2,则在urllib的基础上,提供了更多的接口,如cookie、代理、认证等更强大的功能。
urllib常用函数:
1、urllib.urlopen(url[, data[, proxies]]): 打开一个网址,并返回一个类似于文件的对象,对于该对对象,我们可以执行以下操作。
read() , readline() , readlines() , fileno() , close() :这些方法的使用方式与文件对象完全一样;
info(): 返回一个httplib.HTTPMessage 对象,表示远程服务器返回的头信息;
getcode(): 返回Http状态码。如果是http请求,200表示请求成功完成;404表示网址未找到;
geturl(): 返回请求的url;
参数中的data,表示以post方式提交到web的参数,proxies用于设置代理,这两个参数很少用到。
2、urllib.urlretrieve(url[, filename[, reporthook[, data]]]): 将远程数据下载到本地。url,是网址,filename表示的是本地路径,用于存放下载的数据,reporthook,是一个回调函数,当连接到服务器时,或者获得数据时,将调用该函数,data,用于post的数据。
3、urlcleanup()清除urlretrieve函数的缓存。
4、urllib中的一些字符编码的辅助函数
urllib.quote(string[, safe]): 对字符串进行编码。参数safe指定了不需要编码的字符;
urllib.unquote(string) : 对字符串进行解码;
urllib.quote_plus(string [ , safe ] ) : 与urllib.quote类似,但这个方法用'+'来替换' ',而quote用'%20'来代替' '
urllib.unquote_plus(string ) : 对字符串进行解码;
urllib.urlencode(query[, doseq]): 将dict或者包含两个元素的元组列表转换成url参数。例如 字典{'name': 'dark-bull', 'age': 200}将被转换为"name=dark-bull&age=200"
urllib.pathname2url(path): 将本地路径转换成url路径;
urllib.url2pathname(path): 将url路径转换成本地路径
针对上面的一个样例:
urllib2的常用函数:
1、urllib2.urlopen(url[, data][, timeout])与urllib的函数一样
2、urllib2.Request(url[, data][, headers][, origin_req_host][, unverifiable]),
url:是网址、文件路径、ftp路径
data:通过urllib.urlencode形成的字符串。
header:请求头
后两个参数:用于第三方的cookie,详情可参看官网。http://docs.python.org/2/library/urllib2.html#urllib2.BaseHandler
urllib常用函数:
1、urllib.urlopen(url[, data[, proxies]]): 打开一个网址,并返回一个类似于文件的对象,对于该对对象,我们可以执行以下操作。
read() , readline() , readlines() , fileno() , close() :这些方法的使用方式与文件对象完全一样;
info(): 返回一个httplib.HTTPMessage 对象,表示远程服务器返回的头信息;
getcode(): 返回Http状态码。如果是http请求,200表示请求成功完成;404表示网址未找到;
geturl(): 返回请求的url;
参数中的data,表示以post方式提交到web的参数,proxies用于设置代理,这两个参数很少用到。
2、urllib.urlretrieve(url[, filename[, reporthook[, data]]]): 将远程数据下载到本地。url,是网址,filename表示的是本地路径,用于存放下载的数据,reporthook,是一个回调函数,当连接到服务器时,或者获得数据时,将调用该函数,data,用于post的数据。
3、urlcleanup()清除urlretrieve函数的缓存。
4、urllib中的一些字符编码的辅助函数
urllib.quote(string[, safe]): 对字符串进行编码。参数safe指定了不需要编码的字符;
urllib.unquote(string) : 对字符串进行解码;
urllib.quote_plus(string [ , safe ] ) : 与urllib.quote类似,但这个方法用'+'来替换' ',而quote用'%20'来代替' '
urllib.unquote_plus(string ) : 对字符串进行解码;
urllib.urlencode(query[, doseq]): 将dict或者包含两个元素的元组列表转换成url参数。例如 字典{'name': 'dark-bull', 'age': 200}将被转换为"name=dark-bull&age=200"
urllib.pathname2url(path): 将本地路径转换成url路径;
urllib.url2pathname(path): 将url路径转换成本地路径
针对上面的一个样例:
# coding : UTF-8 import urllib import re ''' def getHtml(url): urlFile = urllib.urlopen(url) urllib.FancyURLopener print urlFile.getcode() return urlFile.read() def getJpg(html): reg = r'src="(http://.*?\.jpg)"' index = 0 imgre = re.compile(reg) jpgs = re.findall(imgre, html) for x in jpgs: print "url = %s %d.jpg\n" % (x, index) urllib.urlretrieve(x, "C:\Users\Hawk\Desktop\jpg\%d.jpg" % index) index = index + 1 html = getHtml(r"http://image.baidu.com/") print "Game Over "*3 ''' data = 'name = ~a+3' data1 = urllib.quote(data) print data1 # result: name%20%3D%20%7Ea%2B3 print urllib.unquote(data1) # result: name = ~a+3 data2 = urllib.quote_plus(data) print data2 # result: name+%3D+%7Ea%2B3 print urllib.unquote_plus(data2) # result: name = ~a+3 data3 = urllib.urlencode({ 'name': 'dark-bull', 'age': 200 }) print data3 # result: age=200&name=dark-bull data4 = urllib.pathname2url(r'd:/a/b/c/23.php') print data4 # result: ///D|/a/b/c/23.php print urllib.url2pathname(data4) # result: D:/a/b/c/23.php
urllib2的常用函数:
1、urllib2.urlopen(url[, data][, timeout])与urllib的函数一样
2、urllib2.Request(url[, data][, headers][, origin_req_host][, unverifiable]),
url:是网址、文件路径、ftp路径
data:通过urllib.urlencode形成的字符串。
header:请求头
后两个参数:用于第三方的cookie,详情可参看官网。http://docs.python.org/2/library/urllib2.html#urllib2.BaseHandler
相关文章推荐
- Python模块之urllib和urllib2之间的区别
- python的httplib、urllib和urllib2的区别
- python的httplib、urllib和urllib2的区别及用
- python爬虫--urllib2和urllib区别
- python基于http协议编程:httplib,urllib和urllib2
- python的httplib、urllib和urllib2的区别及用
- 详解:Python2中的urllib、urllib2与Python3中的urllib以及第三方模块requests
- python urllib, urllib2实现登陆和简单爬取网页(个人坑点笔记)
- 爬虫中python2的urllib2和python3的urllib
- Python模块之urllib和urllib2结合使用
- 从0开始学python:urllib和urllib2的区别
- python中urllib和urllib2不同的调试方法
- Python:urllib和urllib2的区别
- python urllib 和 urllib2
- Python中的URLLIB及URLLIB2
- 详解:Python2中的urllib、urllib2与Python3中的urllib以及第三方模块requests
- Python2中的urllib、urllib2与Python3中的urllib以及第三方模块requests
- python基于http协议编程:httplib,urllib和urllib2
- python 网络编程——urllib,urllib2简单运用
- python urllib和urllib2 区别