使用urllib库的urlretrieve()方法下载网络文件到本地的方法


Posted in Python onDecember 19, 2018

概述

见源码

源码

# !/usr/bin/env python
# -*- coding:utf-8 -*-
 
 
"""
图片(文件)下载,核心方法是 urllib.urlrequest 模块的 urlretrieve()方法
 urlretrieve(url, filename=None, reporthook=None, data=None)
 url: 文件url
 filename: 保存到本地时,使用的文件(路径)名称
 reporthook: 文件传输时的回调函数
 data: post提交到服务器的数据
 该方法返回一个二元元组("本地文件路径",<http.client.HTTPMessage对象>)
"""
 
import requests
import urllib.request
from lxml import etree
 
 
def crawl():
 url='http://www.ivsky.com/tupian/haiyangshijie/'
 headers={
 "User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36",
 }
 
 resp=requests.get(url,headers=headers)
 
 if resp.status_code==200:
 resp.encoding='UTF-8'
 html=etree.HTML(resp.text)
 
 img_titles=html.xpath('//ul[@class="ali"]//a/@title')
 img_urls=html.xpath('//ul[@class="ali"]//a/img/@src')
 
 data=zip(img_titles,img_urls)
 for img_title,img_url in data:
  print('开始下载{title}.jpg'.format(title=img_title))
  result=urllib.request.urlretrieve(img_url,
     filename='../../data/图片下载爬虫/{title}.jpg'.format(title=img_title),
     reporthook=loading,
     data=None)
  # print(result)
 
def loading(blocknum,blocksize,totalsize):
 """
 回调函数: 数据传输时自动调用
 blocknum:已经传输的数据块数目
 blocksize:每个数据块字节
 totalsize:总字节
 """
 percent=int(100*blocknum*blocksize/totalsize)
 if percent>100:
 percent=100
 print("正在下载>>>{}%".format(percent))
 import time
 time.sleep(0.5)
 
 
if __name__ == '__main__':
 crawl()

运行结果

开始下载海里的海龟图片.jpg
正在下载>>>0%
正在下载>>>100%
开始下载绮丽的海底世界图片.jpg
正在下载>>>0%
正在下载>>>43%
正在下载>>>87%
正在下载>>>100%
开始下载可爱的海豹图片.jpg
正在下载>>>0%
正在下载>>>50%
正在下载>>>100%
开始下载不同的海星图片.jpg
正在下载>>>0%
正在下载>>>63%
正在下载>>>100%
开始下载可爱的水母图片.jpg
正在下载>>>0%
正在下载>>>100%
开始下载活泼可爱的海豚图片.jpg
正在下载>>>0%
正在下载>>>47%
正在下载>>>95%
正在下载>>>100%
开始下载阳光下的海胆壳图片.jpg
正在下载>>>0%
正在下载>>>63%
正在下载>>>100%
开始下载海洋中的水母图片.jpg
正在下载>>>0%
正在下载>>>56%
正在下载>>>100%
开始下载千姿百态的海螺图片.jpg
正在下载>>>0%
正在下载>>>62%
正在下载>>>100%
开始下载水族馆里的水生动植物图片.jpg
正在下载>>>0%
正在下载>>>46%
正在下载>>>93%
正在下载>>>100%
开始下载水母图片.jpg
正在下载>>>0%
正在下载>>>100%
开始下载海星摄影图片.jpg
正在下载>>>0%
正在下载>>>79%
正在下载>>>100%
开始下载五彩斑斓的海洋鱼群图片.jpg
正在下载>>>0%
正在下载>>>29%
正在下载>>>59%
正在下载>>>89%
正在下载>>>100%
开始下载漂亮的贝壳图片.jpg
正在下载>>>0%
正在下载>>>39%
正在下载>>>79%
正在下载>>>100%
开始下载海底水母图片.jpg
正在下载>>>0%
正在下载>>>82%
正在下载>>>100%
开始下载海底的珊瑚图片.jpg
正在下载>>>0%
正在下载>>>48%
正在下载>>>97%
正在下载>>>100%
开始下载海星高清图片.jpg
正在下载>>>0%
正在下载>>>25%
正在下载>>>50%
正在下载>>>75%
正在下载>>>100%
开始下载色彩鲜艳的热带海洋鱼图片.jpg
正在下载>>>0%
正在下载>>>63%
正在下载>>>100%

使用urllib库的urlretrieve()方法下载网络文件到本地的方法

以上这篇使用urllib库的urlretrieve()方法下载网络文件到本地的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 文件与目录操作
Dec 24 Python
Python实现的检测web服务器健康状况的小程序
Sep 17 Python
python回溯法实现数组全排列输出实例分析
Mar 17 Python
在Python的Flask框架下使用sqlalchemy库的简单教程
Apr 09 Python
Python实现mysql数据库更新表数据接口的功能
Nov 19 Python
python3 写一个WAV音频文件播放器的代码
Sep 27 Python
pandas中遍历dataframe的每一个元素的实现
Oct 23 Python
使用python 计算百分位数实现数据分箱代码
Mar 03 Python
Python把图片转化为pdf代码实例
Jul 28 Python
Python如何测试stdout输出
Aug 10 Python
如何利用python生成MD5并去重
Dec 07 Python
详解python3 GUI刷屏器(附源码)
Feb 18 Python
对python内置map和six.moves.map的区别详解
Dec 19 #Python
对python中的six.moves模块的下载函数urlretrieve详解
Dec 19 #Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
Dec 18 #Python
对python3标准库httpclient的使用详解
Dec 18 #Python
python 3.3 下载固定链接文件并保存的方法
Dec 18 #Python
python根据url地址下载小文件的实例
Dec 18 #Python
如何用python写一个简单的词法分析器
Dec 18 #Python
You might like
一个用php3编写的简单计数器
2006/10/09 PHP
Yii2隐藏frontend/web和backend/web的方法
2015/12/12 PHP
深入学习微信网址链接解封的防封原理visit_type
2019/08/15 PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
2020/05/02 PHP
jquery imgareaselect 使用利用js与程序结合实现图片剪切
2009/07/30 Javascript
javascript基本包装类型介绍
2015/04/10 Javascript
在Python中使用glob模块查找文件路径的方法
2015/06/17 Javascript
jQuery实现Flash效果上下翻动的中英文导航菜单代码
2015/09/22 Javascript
jQuery实现iframe父窗体和子窗体的相互调用
2016/06/17 Javascript
AngularJS 入门教程之HTML DOM实例详解
2016/07/28 Javascript
详解webpack es6 to es5支持配置
2017/05/04 Javascript
jquery单击文字或图片内容放大并居中显示
2017/06/23 jQuery
详解webpack介绍&amp;安装&amp;常用命令
2017/06/29 Javascript
基于Bootstrap框架菜鸟入门教程(推荐)
2017/09/17 Javascript
微信小程序CSS3动画下拉菜单效果
2018/11/04 Javascript
js实现点击按钮随机生成背景颜色
2020/09/05 Javascript
Pyhton中防止SQL注入的方法
2015/02/05 Python
Python的randrange()方法使用教程
2015/05/15 Python
Python之父谈Python的未来形式
2016/07/01 Python
浅谈python中的变量默认是什么类型
2016/09/11 Python
wxPython色环电阻计算器
2019/11/18 Python
使用python去除图片白色像素的实例
2019/12/12 Python
Numpy(Pandas)删除全为零的列的方法
2020/09/11 Python
pycharm配置QtDesigner的超详细方法
2021/01/25 Python
HTML5 Canvas中使用路径描画二阶、三阶贝塞尔曲线
2015/01/01 HTML / CSS
德国百年厨具品牌WMF美国站:WMF美国
2016/09/12 全球购物
Kusmi茶美国官网:优质散叶茶和茶包
2019/10/13 全球购物
波兰家居饰品和厨房配件网上商店:Maleomi
2020/12/15 全球购物
别名指示符是什么
2012/10/08 面试题
采购部部门职责
2013/12/15 职场文书
教师申诉制度
2014/01/29 职场文书
森林防火工作方案
2014/02/14 职场文书
语文高效课堂实施方案
2014/05/03 职场文书
歌唱比赛策划方案
2014/06/06 职场文书
格列夫游记读书笔记
2015/07/01 职场文书
《鲁班学艺》读后感3篇
2019/11/27 职场文书