Python urllib与urllib2

时间:2014-03-11 07:38:28   收藏:0   阅读:482

  Python中包含了两个网络模块,分别是urllib与urllib2,urllib2是urllib的升级版,拥有更强大的功能。urllib,让我们可以像读文件一样,读取http与ftp。而urllib2,则在urllib的基础上,提供了更多的接口,如cookie、代理等更强大的功能。

  urllib常用函数:

    1、urllib.urlopen(url[, data[, proxies]]):   打开一个网址,并返回一个类似于文件的对象,对于该对对象,我们可以执行以下操作。

      参数中的data,表示以post方式提交到web的参数,proxies用于设置代理,这两个参数很少用到。

    2、urllib.urlretrieve(url[, filename[, reporthook[, data]]]):  将远程数据下载到本地。url,是网址,filename表示的是本地路径,用于存放下载的数据,reporthook,是一个回调函数,当连接到服务器时,或者获得数据时,将调用该函数,data,用于post的数据。

    3、urllib中的一些字符编码的辅助函数

  针对上面的一个样例:

    

bubuko.com,布布扣
 1 # coding : UTF-8
 2 
 3 import urllib
 4 import re
 5 ‘‘‘
 6 def getHtml(url):
 7     urlFile = urllib.urlopen(url)
 8     urllib.FancyURLopener
 9     print urlFile.getcode()
10     return urlFile.read()
11 
12 def getJpg(html):
13     reg = r‘src="(http://.*?\.jpg)"‘
14     index = 0
15     imgre = re.compile(reg)
16     jpgs = re.findall(imgre, html)
17     for x in jpgs:
18         print "url = %s    %d.jpg\n" % (x, index)
19         urllib.urlretrieve(x, "C:\Users\Hawk\Desktop\jpg\%d.jpg" % index)
20         index = index + 1
21 
22 
23 html = getHtml(r"http://image.baidu.com/")
24 print "Game Over   "*3
25 ‘‘‘
26 
27 data = name = ~a+3
28 
29 data1 = urllib.quote(data)
30 print data1 # result: name%20%3D%20%7Ea%2B3
31 print urllib.unquote(data1) # result: name = ~a+3
32 
33 data2 = urllib.quote_plus(data)
34 print data2 # result: name+%3D+%7Ea%2B3
35 print urllib.unquote_plus(data2)    # result: name = ~a+3
36 
37 data3 = urllib.urlencode({ name: dark-bull, age: 200 })
38 print data3 # result: age=200&name=dark-bull
39 
40 data4 = urllib.pathname2url(rd:/a/b/c/23.php)
41 print data4 # result: ///D|/a/b/c/23.php
42 print urllib.url2pathname(data4)    # result: D:/a/b/c/23.php
bubuko.com,布布扣

 

  urllib2的常用函数:

  

Python urllib与urllib2,布布扣,bubuko.com

原文:http://www.cnblogs.com/wang-can/p/3591116.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!