urlopen()和urlretrieve() 使用方法
1、urlopen()方法
urllib.request.urlopen(url[,data[,proxies]])
创建一个表示远程url的类文件对象,然后像本地文件一样的操作这个类文件对象来获取远程数据
参数url表示远程数据的路径,一般是指网址
参数data表示以post方式提交到url的数据(玩过web的人应该只带提交数据的两种方式:post和get。如果你不清楚,也不必在意,因为一般情况下这个参数很少用到)
参数proxies用于设置代理。
urlopen()返回一个类文件对象,它提供了如下方法:
read(),readline(),readlines(),fileno(),close(): 这些方法的使用方式与文件对象完全一样。
info():返回一个httplib.HTTPMessage对象,表示远程服务器返回的头部信息
getcode():返回http的状态码,如果是http请求,200表示请求成功,404表示未找到网址
geturl():返回请求的url
2、urlretrieve方法
直接将远程数据下载到本地
urllib.request.urlretrieve(url[,filename[,reporthook[,data]]])
参数说明
url:外部或者本地url
filename:制定了保存到本地的路径,(如果未指定该参数,urllib会生成一个临时文件来保存数据)
reporthook:是一个回调函数,当连接上服务器以及响应的数据模块传输完毕的时候就会触发该回调函数,我们可以用这个回调函数来显示当前的下载进度
data:指post到服务器的数据。该方法返回一个包含两个元素的元祖(filename,headers)filename表示保存到本地的路径,headers表示服务器响应首部。