使用urlretrieve()函数怎么下载网络文件

今天就跟大家聊聊有关使用urlretrieve()函数怎么下载网络文件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

源码

使用urlretrieve()函数怎么下载网络文件

#!/usr/bin/envpython
#-*-coding:utf-8-*-


"""
图片(文件)下载,核心方法是urllib.urlrequest模块的urlretrieve()方法
urlretrieve(url,filename=None,reporthook=None,data=None)
url:文件url
filename:保存到本地时,使用的文件(路径)名称
reporthook:文件传输时的回调函数
data:post提交到服务器的数据
该方法返回一个二元元组("本地文件路径",<http.client.HTTPMessage对象>)
"""

importrequests
importurllib.request
fromlxmlimportetree


defcrawl():
url='http://www.ivsky.com/tupian/haiyangshijie/'
headers={
"User-Agent":"Mozilla/5.0(X11;Linuxx86_64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/63.0.3239.108Safari/537.36",
}

resp=requests.get(url,headers=headers)

ifresp.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)
forimg_title,img_urlindata:
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)

defloading(blocknum,blocksize,totalsize):
"""
回调函数:数据传输时自动调用
blocknum:已经传输的数据块数目
blocksize:每个数据块字节
totalsize:总字节
"""
percent=int(100*blocknum*blocksize/totalsize)
ifpercent>100:
percent=100
print("正在下载>>>{}%".format(percent))
importtime
time.sleep(0.5)


if__name__=='__main__':
crawl()

看完上述内容,你们对使用urlretrieve()函数怎么下载网络文件有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注恰卡编程网行业资讯频道,感谢大家的支持。

发布于 2021-03-26 01:50:06
收藏
分享
海报
0 条评论
168
上一篇:怎么在易语言中使用树形框架组件 下一篇:怎么在微信小程序中使用时间选择插件
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码