概述

见源码

源码

# !/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()方法下载网络文件到本地的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

标签:
urllib,urlretrieve

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。