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中将单词首字母大写的capitalize()方法
May 18 Python
Python实现输出程序执行进度百分比的方法
Sep 16 Python
Python+tkinter模拟“记住我”自动登录实例代码
Jan 16 Python
Python面向对象基础入门之编码细节与注意事项
Dec 11 Python
Python Image模块基本图像处理操作小结
Apr 13 Python
django连接oracle时setting 配置方法
Aug 29 Python
python 哈希表实现简单python字典代码实例
Sep 27 Python
Python 根据数据模板创建shapefile的实现
Nov 26 Python
Python模块的制作方法实例分析
Dec 21 Python
django model object序列化实例
Mar 13 Python
浅谈在JupyterNotebook下导入自己的模块的问题
Apr 16 Python
在Python中实现字典反转案例
Dec 05 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加水印的代码(支持半透明透明打水印,支持png透明背景)
2013/01/17 PHP
在openSUSE42.1下编译安装PHP7 的方法
2015/12/24 PHP
PHP图片添加水印功能示例小结
2016/10/03 PHP
jquery的flexigrid无法显示数据提示获取到数据
2013/07/19 Javascript
Nodejs Post请求报socket hang up错误的解决办法
2014/09/25 NodeJs
jQuery实现自定义下拉列表
2015/01/05 Javascript
浅析jQuery事件之on()方法绑定多个选择器,多个事件
2016/04/27 Javascript
jquery.Callbacks的实现详解
2016/11/30 Javascript
Angular4学习之Angular CLI的安装与使用教程
2018/01/04 Javascript
vue中使用vue-cli接入融云实现即时通信
2019/04/19 Javascript
JavaScript Html实现移动端红包雨功能页面
2021/01/10 Javascript
[02:12]Dota 2 推出全新英雄—— 电炎绝手
2019/08/23 DOTA
对python中执行DOS命令的3种方法总结
2018/05/12 Python
Django使用HttpResponse返回图片并显示的方法
2018/05/22 Python
对web.py设置favicon.ico的方法详解
2018/12/04 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
Python实现求两个数组交集的方法示例
2019/02/23 Python
python mysql断开重连的实现方法
2019/07/26 Python
Django+python服务器部署与环境部署教程详解
2020/03/30 Python
python文件读取失败怎么处理
2020/06/23 Python
python 删除excel表格重复行,数据预处理操作
2020/07/06 Python
Python threading模块condition原理及运行流程详解
2020/10/05 Python
详解用selenium来下载小姐姐图片并保存
2021/01/26 Python
css3实现平移效果(transfrom:translate)的示例
2020/11/13 HTML / CSS
英国最大的电子产品和家电零售企业:Currys PC World
2016/09/24 全球购物
New Balance波兰官方商城:始于1906年,百年慢跑品牌
2017/08/15 全球购物
LEGO玩具英国官方商店:LEGO Shop GB
2018/03/27 全球购物
澳大利亚最受欢迎的美发和美容在线商店:Catwalk
2018/12/12 全球购物
漫威玩具服装及周边商品官方购物网站:Marvel Shop
2019/05/11 全球购物
物流专业大学的自我评价
2014/01/11 职场文书
2014社区三八妇女节活动总结
2014/03/01 职场文书
个人自荐材料
2014/05/23 职场文书
2014年扶贫帮困工作总结
2014/12/09 职场文书
MongoDB数据库常用的10条操作命令
2021/06/18 MongoDB
2021年国产动漫公司排行前十名,玄机科技上榜,第二推出过铠甲勇士
2022/03/18 杂记
win10电脑双屏显示一个黑屏怎么办?win10电脑双屏显示一个黑屏解决方法
2022/07/15 数码科技