python版本:2.7.15
1.简单用法urllib.urlopen()
语法: urllib.urlopen(url[,data[,proxies]]) : 打开一个url的方法,返回一个文件对象,然后可以进行类似文件对象的操作。
示例代码: googleResponse = urllib.urlopen('http://www.google.com.hk') print 'http header:/n',googleResponse.info() print 'http status:',googleResponse.getcode() print 'url:',googleResponse.geturl() # 读取html页面的第一行 firstLine = googleResponse.readline() # 就像在操作本地文件 for line in googleResponse: print line, googleResponse.close()
urlopen返回对象提供方法: - read(),readline(),readlines(),fileno(),close() :这些方法的使用方式与文件对象完全一样 - info():返回一个httplib.HTTPMessage对象,表示远程服务器返回的头信息 - getcode():返回Http状态码。如果是http请求,200请求成功完成;404网址未找到 - geturl():返回请求的url
2.存储为文件urllib.urlretrieve() 语法: urllib.urlretrieve(url[,filename[,reporthook[,data]]]) urlretrieve方法将url定位到的html文件下载到你本地的硬盘中。如果不指定filename,则会存为临时文件。 urlretrieve()返回一个二元组(filename,mine_hdrs)
临时存放: filename = urllib.urlretrieve('http://www.google.com.hk/') prtin type(filename) # <type 'tuple'> prtin filename[0] # '/tmp/tmp8eVLjq' print filename[1] # <httplib.HTTPMessage instance at 0xb6a363ec>
存为本地文件: filename = urllib.urlretrieve('http://www.google.com.hk/',filename='/home/python/google.html') print type(filename) # <type 'tuple'> print filename[0] # '/home/python/google.html' print filename[1] # <httplib.HTTPMessage instance at 0xb6e2c38c>
3.使用urllib实现post方法和get方法
需要用到urllib.urlencode(query)将URL中的参数键值对以连接符&划分
GET方法: import urllib params=urllib.urlencode({'name':'aaron','pwd':'123456','rem':0}) print params # 'pwd=123456&name=aaron&rem=0' f=urllib.urlopen("http://dev.xxx.com/login?%s" % params) print f.read()
POST方法: import urllib parmas = urllib.urlencode({'name':'aaron','rem':0}) f=urllib.urlopen("http://dev.xxx.com/login",parmas) f.read()
4.其它方法
urllib.urlcleanup() 清除由于urllib.urlretrieve()所产生的缓存
urllib.quote(url)和urllib.quote_plus(url) 将url数据获取之后,并将其编码,从而适用与URL字符串中,使其能被打印和被web服务器接受。 print urllib.quote('http://www.baidu.com') # 'http%3A//www.baidu.com' print urllib.quote_plus('http://www.baidu.com') # 'http%3A%2F%2Fwww.baidu.com'
urllib.unquote(url)和urllib.unquote_plus(url) 与urllib.quote(url)和urllib.quote_plus(url)函数相反。
?
done! (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|