今天就跟大家聊聊有关使用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()函数怎么下载网络文件有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注恰卡编程网行业资讯频道,感谢大家的支持。
C#中的WebRequest与WebResponse抽象类、DNS静态类、Ping类实例分析
C++引用如何使用
flutter怎么封装点击菜单工具栏组件checkBox多选版
JavaScript怎么实现淘宝网图片的局部放大功能
flutter怎么封装单选点击菜单工具栏组件
小程序怎么开发调用微信支付及微信回调地址
Python怎么通过变量ID得到变量的值
Python如何实现功能全面的学生管理系统
idea怎么使用jclasslib插件查看字节码
python怎么用xlsxwriter模块处理excel文件
用户名
密码
记住登录状态 忘记密码?
邮箱
确认密码
我已阅读并同意 用户协议