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-基础-入门 简介
Aug 09 Python
Python中使用bidict模块双向字典结构的奇技淫巧
Jul 12 Python
python3+PyQt5实现使用剪贴板做复制与粘帖示例
Jan 24 Python
python实现读取excel写入mysql的小工具详解
Nov 20 Python
python OpenCV学习笔记之绘制直方图的方法
Feb 08 Python
python实现文件的分割与合并
Aug 29 Python
python几种常用功能实现代码实例
Dec 25 Python
keras实现调用自己训练的模型,并去掉全连接层
Jun 09 Python
python 图像插值 最近邻、双线性、双三次实例
Jul 05 Python
Python可以用来做什么
Nov 23 Python
Python基于百度API识别并提取图片中文字
Jun 27 Python
Python加密技术之RSA加密解密的实现
Apr 08 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写的采集程序
2007/03/16 PHP
php运行出现Call to undefined function curl_init()的解决方法
2010/11/02 PHP
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
php tp验证表单与自动填充函数代码
2012/02/22 PHP
php的sprintf函数的用法 控制浮点数格式
2014/02/14 PHP
yii插入数据库防并发的简单代码
2017/05/27 PHP
php函数式编程简单示例
2019/08/08 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
2019/12/04 PHP
PHP程序员简单的开展服务治理架构操作详解(一)
2020/05/14 PHP
定义select的边框颜色
2008/04/28 Javascript
JavaScript 输入框内容格式验证代码
2010/02/11 Javascript
Jquery css函数用法(判断标签是否拥有某属性)
2011/05/28 Javascript
js 实现菜单左右滚动显示示例介绍
2013/11/21 Javascript
jquery 操作两个select实现值之间的互相传递
2014/03/07 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
2015/12/01 Javascript
微信小程序 定义全局数据、函数复用、模版等详细介绍
2016/10/27 Javascript
js实现数组和对象的深浅拷贝
2017/09/30 Javascript
Vue 第三方字体图标引入 Font Awesome的方法
2018/09/28 Javascript
微信小程序常用简易小函数总结
2019/02/01 Javascript
[01:32]2016国际邀请赛中国区预选赛IG战队首日赛后采访
2016/06/27 DOTA
python 参数列表中的self 显式不等于冗余
2008/12/01 Python
Python中列表和元组的使用方法和区别详解
2020/12/30 Python
Python使用getpass库读取密码的示例
2017/10/10 Python
python 设置文件编码格式的实现方法
2017/12/21 Python
Python 实现Serial 与STM32J进行串口通讯
2019/12/18 Python
详解python模块pychartdir安装及导入问题
2020/10/22 Python
英国最大的手表网站:The Watch Hut
2017/03/31 全球购物
HearthSong官网:儿童户外玩具、儿童益智玩具
2017/10/16 全球购物
印度首个本地在线平台:nearbuy
2019/03/28 全球购物
在数据文件自动增长时,自动增长是否会阻塞对文件的更新
2014/05/01 面试题
小学向国旗敬礼活动方案
2014/09/27 职场文书
教师个人考察材料
2014/12/16 职场文书
毕业生班级鉴定评语
2015/01/04 职场文书
2016年寒假见闻
2015/10/10 职场文书
适合青年人白手起家的创业项目分享
2019/08/16 职场文书
解决Tkinter中button按钮未按却主动执行command函数的问题
2021/05/23 Python