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中的自定义函数学习笔记
Sep 23 Python
Python实现基于二叉树存储结构的堆排序算法示例
Dec 08 Python
python爬虫爬取某站上海租房图片
Feb 04 Python
Python实现的查询mysql数据库并通过邮件发送信息功能
May 17 Python
使用pycharm设置控制台不换行的操作方法
Jan 19 Python
python 模拟贷款卡号生成规则过程解析
Aug 30 Python
浅谈Django2.0 加xadmin踩的坑
Nov 15 Python
python基于opencv检测程序运行效率
Dec 28 Python
如何使用python实现模拟鼠标点击
Jan 06 Python
pyftplib中文乱码问题解决方案
Jan 11 Python
Python正则表达式高级使用方法汇总
Jun 18 Python
python疲劳驾驶困倦低头检测功能的实现
Apr 04 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
Centos PHP 扩展Xchche的安装教程
2016/07/09 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
ThinkPHP3.1.2 使用cli命令行模式运行的方法
2020/04/14 PHP
用showModalDialog弹出页面后,提交表单总是弹出一个新窗口
2009/07/18 Javascript
关于锚点跳转及jQuery下相关操作与插件
2012/10/01 Javascript
js window.print实现打印特定控件或内容
2013/09/16 Javascript
js中一个函数获取另一个函数返回值问题探讨
2013/11/21 Javascript
悬浮数字的实现案例
2014/02/19 Javascript
Javascript让DEDECMS告别手写Tag
2014/09/01 Javascript
jQuery中val()方法用法实例
2014/12/25 Javascript
js实现带圆角的多级下拉菜单效果
2015/08/28 Javascript
JavaScript事件处理的方式(三种)
2016/04/26 Javascript
jQuery学习之DOM节点的插入方法总结
2017/01/22 Javascript
JS优化与惰性载入函数实例分析
2017/04/06 Javascript
Angular 1.x个人使用的经验小结
2017/07/19 Javascript
基于JavaScript实现无缝滚动效果
2017/07/21 Javascript
jQuery实现的隔行变色功能【案例】
2019/02/18 jQuery
微信接入之获取用户头像的方法步骤
2019/09/23 Javascript
Vue 同步异步存值取值实现案例
2020/08/05 Javascript
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
python在Windows8下获取本机ip地址的方法
2015/03/14 Python
基于python神经卷积网络的人脸识别
2018/05/24 Python
python实现textrank关键词提取
2018/06/22 Python
python实现网站微信登录的示例代码
2019/09/18 Python
美国领先的奢侈美容零售商:Bluemercury
2017/07/26 全球购物
卡骆驰德国官方网站:Crocs德国
2019/03/29 全球购物
大学生创业计划书的格式要求
2013/12/29 职场文书
秋季运动会稿件
2014/01/30 职场文书
老师的检讨书
2014/02/23 职场文书
文化宣传方案
2014/03/13 职场文书
感恩的演讲稿
2014/05/06 职场文书
庆七一活动总结
2014/08/27 职场文书
写给同事的离职感言
2015/08/04 职场文书
遇事可以测出您的见识与格局
2019/09/16 职场文书
Python实现Telnet自动连接检测密码的示例
2021/04/16 Python
CSS3实现的侧滑菜单
2021/04/27 HTML / CSS