使用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生成指定长度的随机数密码
Jan 23 Python
Python批量按比例缩小图片脚本分享
May 21 Python
使用Turtle画正螺旋线的方法
Sep 22 Python
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
Oct 13 Python
解决Python requests库编码 socks5代理的问题
May 07 Python
Django 路由控制的实现代码
Nov 08 Python
windows下搭建python scrapy爬虫框架步骤
Dec 23 Python
numpy中的ndarray方法和属性详解
May 27 Python
python输出电脑上所有的串口名的方法
Jul 02 Python
Python 字符串池化的前提
Jul 03 Python
Python绘制组合图的示例
Sep 18 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
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
判断Keep-Alive模式的HTTP请求的结束的实现代码
2011/08/06 PHP
利用“多说”制作留言板、评论系统
2015/07/14 PHP
javascript getElementsByName()的用法说明
2009/07/31 Javascript
jquery实现邮箱自动补全功能示例分享
2014/02/17 Javascript
深入理解javascript原型链和继承
2014/09/23 Javascript
jQuery实现带滚动导航效果的全屏滚动相册实例
2015/06/19 Javascript
Bootstrap优化站点资源、响应式图片、传送带使用详解3
2016/10/14 Javascript
jQuery post数据至ashx实例详解
2016/11/18 Javascript
原生JS与jQuery编写简单选项卡
2017/10/30 jQuery
JavaScript继承与多继承实例分析
2018/05/26 Javascript
JavaScript实现淘宝京东6位数字支付密码效果
2018/08/18 Javascript
Vue弹出菜单功能的实现代码
2018/09/12 Javascript
原生js实现随机点名功能
2019/11/05 Javascript
实例分析JS中的相等性判断===、 ==和Object.is()
2019/11/17 Javascript
微信小程序利用for循环解决内容变更问题
2020/03/05 Javascript
详解JavaScript 事件流
2020/09/02 Javascript
Python实现子类调用父类的方法
2014/11/10 Python
用Python制作在地图上模拟瘟疫扩散的Gif图
2015/03/31 Python
在Python中使用Mako模版库的简单教程
2015/04/08 Python
Python爬取网页中的图片(搜狗图片)详解
2017/03/23 Python
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
2018/09/17 Python
python将一个英文语句以单词为单位逆序排放的方法
2018/12/20 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
2019/08/17 Python
对tensorflow中cifar-10文档的Read操作详解
2020/02/10 Python
python将数据插入数据库的代码分享
2020/08/16 Python
Timberland美国官网:全球领先的户外品牌
2016/08/15 全球购物
新西兰珠宝品牌:Michael Hill
2017/09/16 全球购物
畜牧兽医本科生个人的自我评价
2013/10/11 职场文书
组织关系转移介绍信
2014/01/16 职场文书
《盲人摸象》教学反思
2014/02/16 职场文书
2014年三八妇女节活动方案
2014/02/28 职场文书
统计系教授推荐信
2014/02/28 职场文书
文秘自荐信
2014/06/28 职场文书
安全生产先进个人总结
2015/02/15 职场文书
企业宣传语大全
2015/07/13 职场文书
2016年学校爱国卫生月活动总结
2016/04/06 职场文书