标签:
打开一个url的方法,返回一个文件对象,然后可以进行类似文件对象的操作。本例试着打开google
import urllib f = urllib.urlopen(‘http://www.google.com.hk/‘) firstLine = f.readline() #读取html页面的第一行
urlopen返回对象提供方法:
- read() , readline() ,readlines() , fileno() , close() :这些方法的使用方式与文件对象完全一样
- info():返回一个httplib.HTTPMessage对象,表示远程服务器返回的头信息
- getcode():返回Http状态码。如果是http请求,200请求成功完成;404网址未找到
- geturl():返回请求的url
urlretrieve方法将url定位到的html文件下载到你本地的硬盘中。如果不指定filename,则会存为临时文件。
urlretrieve()返回一个二元组(filename,mine_hdrs)
临时存放:
filename = urllib.urlretrieve(‘http://www.google.com.hk/‘) type(filename) <type ‘tuple‘> print filename[0] print filename[1]
输出:
‘/tmp/tmp8eVLjq‘ <httplib.HTTPMessage instance at 0xb6a363ec>
存为本地文件:
filename = urllib.urlretrieve(‘http://www.baidu.com/‘,filename=‘/home/dzhwen/python文件/Homework/urllib/google.html‘) print type(filename) print filename[0] print filename[1]
输出:
<type ‘tuple‘> ‘/home/dzhwen/python\xe6\x96\x87\xe4\xbb\xb6/Homework/urllib/google.html‘ <httplib.HTTPMessage instance at 0xb6e2c38c>
清除由于urllib.urlretrieve()所产生的缓存
将url数据获取之后,并将其编码,从而适用与URL字符串中,使其能被打印和被web服务器接受。
urllib.quote(‘http://www.baidu.com‘)
转换结果:
‘http%3A//www.baidu.com‘
urllib.quote_plus(‘http://www.baidu.com‘)
转换结果:
‘http%3A%2F%2Fwww.baidu.com‘
与4的函数相反。
将URL中的键值对以连接符&划分
这里可以与urlopen结合以实现post方法和get方法:
GET方法:
import urllib params=urllib.urlencode({‘spam‘:1,‘eggs‘:2,‘bacon‘:0}) f=urllib.urlopen("http://python.org/query?%s" % params) print f.read()
POST方法:
import urllib parmas = urllib.urlencode({‘spam‘:1,‘eggs‘:2,‘bacon‘:0}) f=urllib.urlopen("http://python.org/query",parmas) f.read()
http://www.cnblogs.com/yuxc/archive/2011/08/01/2123995.html
标签:
原文地址:http://www.cnblogs.com/hester/p/5420696.html