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简单读取json文件功能示例
Nov 30 Python
TensorFlow高效读取数据的方法示例
Feb 06 Python
python保存文件方法小结
Jul 27 Python
python面向对象入门教程之从代码复用开始(一)
Dec 11 Python
使用Python轻松完成垃圾分类(基于图像识别)
Jul 09 Python
解决Python中pandas读取*.csv文件出现编码问题
Jul 12 Python
python实现二分类的卡方分箱示例
Nov 22 Python
python ftplib模块使用代码实例
Dec 31 Python
Python RabbitMQ实现简单的进程间通信示例
Jul 02 Python
Python2手动安装更新pip过程实例解析
Jul 16 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
Aug 27 Python
Python通过字典映射函数实现switch
Nov 06 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备份MYSQL数据的多种方法
2014/01/15 PHP
jquery()函数的三种语法介绍
2013/10/09 Javascript
对js关键字命名的疑问介绍
2014/04/25 Javascript
JavaScript实现的购物车效果可以运用在好多地方
2014/05/09 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
2015/09/04 Javascript
JS实现的仿东京商城菜单、仿Win右键菜单及仿淘宝TAB特效合集
2015/09/28 Javascript
移动端js触摸事件详解
2016/09/18 Javascript
javascript 显示全局变量与隐式全局变量的区别
2017/02/09 Javascript
Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
2017/03/27 Javascript
JavaScript解析任意形式的json树型结构展示
2017/07/23 Javascript
详解在React里使用"Vuex"
2018/04/02 Javascript
详解vue-cli@2.x项目迁移日志
2019/06/06 Javascript
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
jQuery实现点击滚动到指定元素上的方法分析
2020/03/19 jQuery
python正则表达式之作业计算器
2016/03/18 Python
Python虚拟环境virtualenv的安装与使用详解
2017/05/28 Python
基于Pandas读取csv文件Error的总结
2018/06/15 Python
Python中字符串List按照长度排序
2019/07/01 Python
Python基于read(size)方法读取超大文件
2020/03/12 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
2020/12/16 Python
深入CSS3 动画效果的总结详解
2013/05/09 HTML / CSS
您的网上新华书店:文轩网
2016/08/24 全球购物
ReVive利维肤美国官网:RéVive Skincare
2018/04/18 全球购物
美国杰西潘尼官网:JCPenney
2019/06/12 全球购物
全陪导游欢迎词
2014/01/17 职场文书
面试后感谢信
2014/02/01 职场文书
祖国在我心中演讲稿300字
2014/05/04 职场文书
判缓刑人员个人思想汇报
2014/10/10 职场文书
收款委托书
2014/10/14 职场文书
幼儿园小班个人总结
2015/02/12 职场文书
2015年八一建军节演讲稿
2015/03/19 职场文书
员工开除通知书
2015/04/25 职场文书
2016党员干部廉政准则学习心得体会
2016/01/20 职场文书
2016年党支部公开承诺书
2016/03/25 职场文书
机关单位2016年法制宣传日活动总结
2016/04/01 职场文书
JPA 通过Specification如何实现复杂查询
2021/11/23 Java/Android