urllib.request.urlretrieve()函数
参考python document
描述
urllib.request.urlretrieve(url, filename=None, reporthook=None, data=None)
函数说明
将URL表示的网络对象复制到本地文件。如果URL指向本地文件,则对象将不会被复制,除非提供文件名。返回一个元组()(filename,header),其中filename是可以找到对象的本地文件名,header是urlopen()返回的对象的info()方法(用于远程对象)。
第二个参数(如果存在)指定要复制到的文件位置(如果没有,该位置将是一个生成名称的tempfile)。第三个参数,如果存在,则是一个回调函数,它将在建立网络连接时调用一次,并且在此后每个块读取后调用一次。这个回调函数将传递三个参数;到目前为止传输的块计数,以字节为单位的块大小,以及文件的总大小。第三个参数可能是-1,在旧的FTP服务器上,它不返回文件大小以响应检索请求。
参数说明
url:外部或者本地url
filename:指定了保存到本地的路径(如果未指定该参数,urllib会生成一个临时文件来保存数据);
reporthook:是一个回调函数,当连接上服务器、以及相应的数据块传输完毕的时候会触发该回调。我们可以利用这个回调函数来显示当前的下载进度。
data:指post到服务器的数据。该方法返回一个包含两个元素的元组(filename, headers),filename表示保存到本地的路径,header表示服务器的响应头。
例子
import os
from six.moves import urllib
import sysDATA_URL = 'http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2'
filename = DATA_URL.split('/')[-1]def _progress(block_num, block_size, total_size):'''回调函数@block_num: 已经下载的数据块@block_size: 数据块的大小@total_size: 远程文件的大小'''sys.stdout.write('\r>> Downloading %s %.1f%%' % (filename,float(block_num * block_size) / float(total_size) * 100.0))sys.stdout.flush()filepath, _ = urllib.request.urlretrieve(DATA_URL, filename, _progress)
print()
输出:
>> Downloading Python-2.7.5.tar.bz2 100.0%
例子中的sys.stdout.write和print差不多是输出的意思,sys.stdout.flush()函数的作用是刷新输出
可以参考博客:https://blog.csdn.net/wuguangbin1230/article/details/77680058
python3下的代码如下:
import time
import sys for i in range(5): print(i,end='') #sys.stdout.flush() time.sleep(1)
这个程序本意是每隔一秒输出一个数字,但是如果把这句话sys.stdout.flush()注释的话,你就只能等到程序执行完毕,屏幕上会一次性输出0,1,2,3,4。
如果你加上sys.stdout.flush(),刷新stdout,这样就能每隔一秒输出一个数字了。
可以用在网络程序中多线程程序,多个线程后台运行,同时要能在屏幕上实时看到输出信息。
urllib.request.urlretrieve()函数相关推荐
- 已解决urllib.request.urlretrieve下载文件报错403
已解决(python使用urlopen/urlretrieve下载文件时出现403 forbidden)urllib.error.HTTPError: HTTP Error 403: Forbidde ...
- python urllib.request 爬虫 数据处理-运维学python之爬虫基础篇(二)urllib模块使用...
1 何为爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引. ...
- python urllib.request 爬虫 数据处理-python 爬虫之 urllib库
文章更新于:2020-03-02 注:代码来自老师授课用样例. 一.初识 urllib 库 在 python2.x 版本,urllib 与urllib2 是两个库,在 python3.x 版本,二者合 ...
- Crawler:爬虫基于urllib.request库实现获取指定网址上的所有图片
Crawler:爬虫基于urllib.request库实现获取指定网址上的所有图片 目录 输出结果 核心代码 输出结果 核心代码 # coding=gbk import urllib.request ...
- python request下载文件_Python3.4.3使用urllib.request下载文件带进度显示
import urllib.request import sys import os import threading def callbackfunc(blocknum, blocksize, to ...
- Python爬虫之urllib.request的使用
需要的模块 urllib.request 获取get一个请求 这里以百度为例 r = urllib.request.urlopen("http://www.baidu.com") ...
- python request库下载_python3.6 urllib.request库实现简单的网络爬虫、下载图片
################################################################# #author: 陈月白 #_blogs: http://www.c ...
- 一木.溪桥学爬虫-03:请求模块urllib、 urllib.request、urllib.parse.urlencode、urllib.parse.quote(str)、.unquote()
一木.溪桥 在Logic Education跟Jerry学爬虫 07期:Python 爬虫 一木.溪桥学爬虫-03:请求模块urllib. urllib.request.urllib.parse.ur ...
- python urllib.request 爬虫 数据处理-Python网络爬虫(基于urllib库的get请求页面)
一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urllib. ...
最新文章
- 三维刚体变化中Rcw,tcw的含义
- Java集合知识:TreeMap
- CentOS卸载Apache Mysql 和php
- 网络资源(9) - TDD视频
- mysql中一个表怎么查询多以上的信息,MySQL怎么样实现多个表的或查询?
- CNN和RNN中如何引入BatchNorm
- 江苏省高等学校计算机一级成绩查询,江苏计算机一级考试成绩查询
- 6.04 从字符串中删除不需要的字符
- python3.6 django部署_Apache2+Django+Python3.6部署-
- 《Entity Framework 6 Recipes》中文翻译系列 (45) ------ 第八章 POCO之获取原始对象与手工同步对象图和变化跟踪器...
- linux删除指定大小的文件,Linux 脚本删除大于指定大小的文件
- [BZOJ4066]简单题
- 内连接,外连接,临时表,定义表,视图
- 加壳及脱壳《逆向工程》
- 私活之安卓论坛Demo
- 使用matlab生成正弦波、三角波、方波的COE文件
- 李雅普诺夫指数的计算
- 谁有好的反P2p终结者的软件啊!
- P9813驱动RGB灯珠
- 警惕更改电子邮件内容实施诈骗活动