Python标准库学习笔记 urllib模块

时间:2022-02-14 03:18:56

利用缓存实现简单的获取

import urllib
import os

def reporthook(blocks_read,block_size,total_size):
if not blocks_read:
print 'Connection opened'
return
if total_size < 0:
print 'Read %d blocks ( %d bytes ) '%(blocks_read,blocks_read*block_size)
else:
amount_read = blocks_read*block_size
print 'Read %d blocks,or %d / %d'%\
(blocks_read,amount_read,total_size)

try:
filename,msg = urllib.urlretrieve('http://zt.xiaomi.com/bbszt/rom/miuiv4_ics7.0/miuiV4_Mioneplus_ICS7.0_4.0_fastboot_dj8428bjkq.exe',
reporthook=reporthook)

print
print 'File:',filename
print 'Headers'
print msg
print 'File exists before cheanup',os.path.exists(filename)

finally:
#urllib.urlcleanup()

print ' File still exists:', os.path.exists(filename)

  参数编码:

import urllib

query_args = {'q':'query string','foo':'bar'}

encoded_args = urllib.urlencode(query_args)

print 'Encoded:',encoded_args

query_args = {'q':['query string','bar']}

print urllib.urlencode(query_args,doseq=True)#同一个名称与多个值关联 doseq = True

  路径与URL转换

import os

from urllib import pathname2url,url2pathname

print '== Windows =='
path = r'\a\b\c'#不包含驱动器字母
print 'Original:',path
print 'URL :',pathname2url(path)
print 'Path :',url2pathname('/d/e/f')

print

path = r'C:\a\b\c'#包含驱动器字母
print 'Original:',path
print 'URL :',pathname2url(path)

Python标准库学习笔记 urllib模块asd