使用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()函数怎么下载网络文件有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注恰卡编程网行业资讯频道,感谢大家的支持。
目录
推荐阅读
-
Web应用从零开始,初学者友好型开发教程
-
容器化最佳实践:Docker 与 Kubernetes 在微服务架构中的协同设计
-
AWS Cloud9 使用攻略:云端 IDE 如何无缝集成 Lambda 与 S3 服务?
-
Heroku vs AWS Elastic Beanstalk:快速部署 Web 应用的平台对比
-
Kubernetes 集群部署避坑:资源调度、服务发现与滚动更新策略
-
Docker 镜像优化指南:分层构建、瘦身技巧与多阶段编译实践
-
Postman 接口测试全流程:从 API 设计到自动化测试脚本编写
-
pytest 框架进阶:自定义 fixture、插件开发与持续集成集成方案
-
JUnit 5 新特性:参数化测试、扩展模型与微服务测试实践
-
Chrome DevTools 性能分析:FPS 监控、内存快照与网络请求优化指南