Python urlopen()和urlretrieve()用法解析


Posted in Python onJanuary 07, 2020

这篇文章主要介绍了Python urlopen()和urlretrieve()用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

1.urlopen()方法

urllib.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;

代码示例:

import urllib
url = "http://www.baidu.com/"
#urlopen()
sock = urllib.urlopen(url)
htmlCode = sock.read()
sock.close
fp = open("e:/1.html","wb")
fp.write(htmlCode)
fp.close
#urlretrieve()
urllib.urlretrieve(url, 'e:/2.html')

2.urlretrieve方法

直接将远程数据下载到本地。

urllib.urlretrieve(url[, filename[, reporthook[, data]]])
参数说明:
url:外部或者本地url
filename:指定了保存到本地的路径(如果未指定该参数,urllib会生成一个临时文件来保存数据);
reporthook:是一个回调函数,当连接上服务器、以及相应的数据块传输完毕的时候会触发该回调。我们可以利用这个回调函数来显示当前的下载进度。
data:指post到服务器的数据。该方法返回一个包含两个元素的元组(filename, headers),filename表示保存到本地的路径,header表示服务器的响应头。

下面通过例子来演示一下这个方法的使用,这个例子将新浪首页的html抓取到本地,保存在D:/sina.html文件中,同时显示下载的进度。

import urllib
def callbackfunc(blocknum, blocksize, totalsize):
  '''回调函数
  @blocknum: 已经下载的数据块
  @blocksize: 数据块的大小
  @totalsize: 远程文件的大小
  '''
  percent = 100.0 * blocknum * blocksize / totalsize
  if percent > 100:
    percent = 100
  print "%.2f%%"% percent
url = 'http://www.sina.com.cn'
local = 'd:\\sina.html'
urllib.urlretrieve(url, local, callbackfunc)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用mysqldb连接数据库操作方法示例详解
Dec 03 Python
python简单获取数组元素个数的方法
Jul 13 Python
举例讲解Python面向对象编程中类的继承
Jun 17 Python
使用Mixin设计模式进行Python编程的方法讲解
Jun 21 Python
Python实现树莓派WiFi断线自动重连的实例代码
Mar 16 Python
Python中进程和线程的区别详解
Oct 29 Python
python实现数据导出到excel的示例--普通格式
May 03 Python
Python标准库shutil用法实例详解
Aug 13 Python
Python CVXOPT模块安装及使用解析
Aug 01 Python
学python安装的软件总结
Oct 12 Python
python文件读取失败怎么处理
Jun 23 Python
用Python制作mini翻译器的实现示例
Aug 17 Python
简单了解Django ORM常用字段类型及参数配置
Jan 07 #Python
解决torch.autograd.backward中的参数问题
Jan 07 #Python
Pytorch 中retain_graph的用法详解
Jan 07 #Python
PyTorch中的Variable变量详解
Jan 07 #Python
python enumerate内置函数用法总结
Jan 07 #Python
pytorch加载自定义网络权重的实现
Jan 07 #Python
Matplotlib绘制雷达图和三维图的示例代码
Jan 07 #Python
You might like
PHP运行模式汇总
2016/11/06 PHP
详解CSS样式中的 !important * _ 符号
2021/03/09 HTML / CSS
IE和Mozilla的兼容性汇总event
2007/08/12 Javascript
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/06 Javascript
Javascript引用指针使用介绍
2012/11/07 Javascript
js实现快速分享功能(你的文章分享工具)
2013/06/25 Javascript
jquery的选择器的使用技巧之如何选择input框
2013/09/22 Javascript
js 显示base64编码的二进制流网页图片
2014/04/04 Javascript
jquery操作select大全
2014/04/25 Javascript
jquery实现简单的二级导航下拉菜单效果
2015/09/07 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
2015/10/24 Javascript
BootStrap 轮播插件(carousel)支持左右手势滑动的方法(三种)
2016/07/07 Javascript
AngularJS 过滤与排序详解及实例代码
2016/09/14 Javascript
Bootstrap Scrollspy源码学习
2017/03/02 Javascript
node.js平台下的mysql数据库配置及连接
2017/03/31 Javascript
使用Vue实现图片上传的三种方式
2018/07/17 Javascript
angularJs中$scope数据序列化的实例
2018/09/30 Javascript
js canvas实现俄罗斯方块
2020/10/11 Javascript
Python os模块介绍
2014/11/30 Python
解决Django数据库makemigrations有变化但是migrate时未变动问题
2018/05/30 Python
Python初学者需要注意的事项小结(python2与python3)
2018/09/26 Python
Python实现的爬取百度文库功能示例
2019/02/16 Python
Django框架 querySet功能解析
2019/09/04 Python
Python读取二进制文件代码方法解析
2020/06/22 Python
OpenCV Python实现图像指定区域裁剪
2021/03/12 Python
python实现自动打卡的示例代码
2020/10/10 Python
Tory Burch英国官方网站:美国时尚生活品牌
2017/12/06 全球购物
Cult Gaia官网:美国生活方式品牌
2019/08/16 全球购物
Marc O’Polo俄罗斯官方在线商店:德国高端时尚品牌
2019/12/26 全球购物
应届医学毕业生求职信分享
2013/12/02 职场文书
基层干部十八大感言
2014/01/19 职场文书
《浅水洼里的小鱼》听课反思
2014/02/28 职场文书
成都人事代理协议书
2014/10/25 职场文书
工程安全生产协议书
2014/11/21 职场文书
tomcat默认最大连接数及相关调整方法
2022/05/06 Servers