使⽤urllib库的urlretrieve()⽅法下载⽹络⽂件到本地的
⽅法
概述
见源码
源码
# !/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
quest
from lxml import etree
def crawl():
url='www.ivsky/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",
}
(url,headers=headers)
if resp.status_code==200:
html=etree.)
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))
quest.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%
chrome直接下载
正在下载>>>75%
正在下载>>>100%
开始下载⾊彩鲜艳的热带海洋鱼图⽚.jpg
正在下载>>>0%
正在下载>>>63%
正在下载>>>100%
以上这篇使⽤urllib库的urlretrieve()⽅法下载⽹络⽂件到本地的⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。