Python:urllib模块的urlretrieve方法
转于:https://blog.csdn.net/fengzhizi76506/article/details/59229846
1)功能:
urllib模块提供的urlretrieve()函数,urlretrieve()方法直接将远程数据下载到本地。
2)格式:
import urllib.request
urllib.request.urlretrieve(url, filename=None, reporthook=None, data=None)
- filename:指定了保存本地路径(如果参数未指定,urllib会生成一个临时文件保存数据。)
- reporthook:一个回调函数,当连接上服务器、以及相应的数据块传输完毕时会触发该回调,我们可以利用这个回调函数来显示当前的下载进度。
- data:指post导服务器的数据,该方法返回一个包含两个元素的(filename, headers) 元组,filename 表示保存到本地的路径,header表示服务器的响应头
例:将baidu的html抓取到本地,保存在''./baidu.html"文件中,同时显示下载的进度。
- #!/usr/bin/env python
- # coding=utf-8
- import os
- import urllib.reuest
- def cbk(a,b,c):
- '''''回调函数
- @a:已经下载的数据块
- @b:数据块的大小
- @c:远程文件的大小
- '''
- per=100.0*a*b/c
- if per>100:
- per=100
- print('%.2f%%' % per)
- url='http://www.baidu.com'
- dir=os.path.abspath('.')
- work_path=os.path.join(dir,'baidu.html')
- urllib.request.urlretrieve(url,work_path,cbk)
- #!/usr/bin/env python
- # coding=utf-8
- import os
- import urllib.request
- def cbk(a,b,c):
- '''''回调函数
- @a:已经下载的数据块
- @b:数据块的大小
- @c:远程文件的大小
- '''
- per=100.0*a*b/c
- if per>100:
- per=100
- print('%.2f%%' % per)
- url='http://www.baidu.com'
- dir=os.path.abspath('.')
- work_path=os.path.join(dir,'baidu.html')
- urllib.request.urlretrieve(url,work_path,cbk)
- #!/usr/bin/env python
- # coding=utf-8
- import os
- import urllib.request
- def cbk(a,b,c):
- '''''回调函数
- @a:已经下载的数据块
- @b:数据块的大小
- @c:远程文件的大小
- '''
- per=100.0*a*b/c
- if per>100:
- per=100
- print('%.2f%%' % per)
- url='http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2'
- dir=os.path.abspath('.')
- work_path=os.path.join(dir,'Python-2.7.5.tar.bz2')
- urllib.request.urlretrieve(url,work_path,cbk)
3)urlopen()可以轻松获取远端html页面信息,然后通过Python正则对所需要的数据进行分析,匹配出想要用的数据,再利用urlretrieve()将数据下载到本地。
A、对于访问受限或者对连接数有限制的远程url地址,可以采用proxies(代理IP)连接;
B、如果远程连接数据量过大,单线程下载太慢的话可以采用多线程下载;
这个就是传说中的爬虫
Python:urllib模块的urlretrieve方法的更多相关文章
- python urllib模块中的方法
1.urllib.urlopen(url[,data[,proxies]]) 打开一个url的方法,返回一个文件对象,然后可以进行类似文件对象的操作.本例试着打开google >>> ...
- urllib模块中的方法
urllib模块中的方法 1.urllib.urlopen(url[,data[,proxies]]) 打开一个url的方法,返回一个文件对象,然后可以进行类似文件对象的操作.本例试着打开google ...
- 查看python中模块的所有方法
查看python中模块的所有方法 安装的python模块,现将查看方法总结如下 一.CMD命令行下使用pydoc命令 在命令行下运行$ pydoc modules即可查看 二.在python交 ...
- python解析模块(ConfigParser)使用方法
python解析模块(ConfigParser)使用方法 很多软件都有配置文件,今天介绍一下python ConfigParser模块解析配置文件的使用方法 测试配置文件test.conf内容如下: ...
- python urllib模块的urlopen()的使用方法及实例
Python urllib 库提供了一个从指定的 URL 地址获取网页数据,然后对其进行分析处理,获取想要的数据. 一.urllib模块urlopen()函数: urlopen(url, data=N ...
- Python urllib模块urlopen()与urlretrieve()详解
1.urlopen()方法urllib.urlopen(url[, data[, proxies]]) :创建一个表示远程url的类文件对象,然后像本地文件一样操作这个类文件对象来获取远程数据.参数u ...
- python urllib模块
1.urllib.urlopen(url[,data[,proxies]]) urllib.urlopen(url[, data[, proxies]]) :创建一个表示远程url的类文件对象,然后像 ...
- Python urllib模块学习
urlopen()与urlretrieve() 1.urlopen()方法 urllib.urlopen(url[, data[, proxies]]) :创建一个表示远程url的类文件对象,然后像本 ...
- Python urllib模块详解
在Python 2中,有urllib和urllib2两个库来实现请求的发送.而在Python 3中,已经不存在urllib2这个库了,统一为urllib,其官方文档链接为:https://docs.p ...
随机推荐
- 【译】Java语言速览:StackOverflow
Java (请不要与 JavaScript 搞混) 是一种设计为与 Java 虚拟机 (JVM) 一起使用的多用途编程语言.一般称呼安装了相关工具使其可以开发并运行 Java 程序的电脑系统为 &qu ...
- greenlet和gevent模块的区别?
协程是一中多任务实现方式,它不需要多个进程或线程就可以实现多任务. yield能实现协程,不过实现过程不易于理解,greenlet是在这方面做了改进,通过switch. greenlet可以实现协程, ...
- PoC简介
无线一键通功能,POC(PTT Over Cellular)也称PTT(Push To Talk)功能.PTT:一键通(Push-to-Talk)功能是一种全新的移动技术,可以快速地进行"一 ...
- 拉普拉斯分布(Laplace distribution)
拉普拉斯分布的定义与基本性质 其分布函数为 分布函数图 其概率密度函数为 密度函数图 拉普拉斯分布与正太分布的比较 从图中可以直观的发现拉普拉斯分布跟正太分布很相似,但是拉普拉斯分布比正太分布有尖的峰 ...
- Android LockScreen (锁屏弹窗)
在要弹窗的Activity需要进行以下设置,才可以在锁屏状态下弹窗 @Override protected void onCreate(Bundle savedInstanceState) { fin ...
- 读paper:image caption with global-local attention…
最近的图片caption真的越来越火了,CVPR ICCV ECCV AAAI很多顶级会议都有此类的文章,今天我来讲一篇发表在AAAI的文章,因为我看了大量的论文,最近感觉AAAI越来越水了.所以这篇 ...
- shell基础part2
shell基础 一.bash中的变量 1.变量的定义:变量是计算机的内存单元,其中存放的值是可以改变的. 2.变量的设定规则:变量名不能以数字开头:变量的等号两边不能有空格,变量的值如果想有空格必须用 ...
- c的详细学习(3)数据的输入输出
c语言没有专门的数据输入输出语句,而是通过调用系统提供的的标准输入/输出库函数来实现数据的输入和输出. (1)数据的输出: 注意:在使用标准的输入输出库函数时,使用编译预处理命令“#inclu ...
- 狄利克雷卷积&莫比乌斯反演
昨天刚说完不搞数论了,刚看到一个\(gcd\)的题目dalao用这个做了,虽然比正解麻烦,还是打算学一学了 数论函数: 数论函数的定义: 数论函数亦称算术函数,一类重要的函数,指定义在正整数集上的实值 ...
- 剑指offer——翻转单词顺序VS左旋转字符串
字符串的交换等,注意判断字符串的是否为NULL,以及判断边界等. #include <iostream> #include <string> using namespace s ...