python 自动下载文件_【Py大法系列--03】Python如何自动下载文件
问题描述
Python自动下载文件,通用文件,包括但不限于压缩文件、图片等。
解决方法
一般情况下,Python下载文件的方式有以下几种:
利用urllib、urllib2,即Python爬虫用的最多的库;
import urllib
import urllib2
import requests
url = "你的下载链接"
urllib.urlretrieve(url, demo.zip)
urllib.urlretrieve(url, demo.zip)这个函数还可以接受另外一个参数,比如这样用:
urllib.urlretrieve(url,local,Schedule),其中Schedule为:
def Schedule(a,b,c):
'''''
a:已经下载的数据块
b:数据块的大小
c:远程文件的大小
'''
per = 100.0 * a * b / c
if per > 100 :
per = 100
print '%.2f%%' % per
这样程序可以即时打印出下载的进度。
利用urllib2.urlopen(url);
import urllib2
print downloading with urllib2
url = "您的链接"
f = urllib2.urlopen(url)
data = f.read()
with open ("demo2.zip", "wb" ) as code:
code.write(data)
利用requests,划重点,我女神推荐的!
import requests
url = "您的链接"
r = requests.get(url)
with open ("demo3.zip", "wb") as code:
code.write(r.content)
这三种下载方式一般都可以,根据自己的喜好选择。
问题升级
第一次下载下来的文件仔细看发现,这是一个请求登录的表单:
Earthdata Login
Earthdata Login
于是手动复制地址到浏览器,跳转到EARTHDATA的登录页
跳转到的登录页.png果断申请账号登录。
问题解决,Python携带cookie下载文件
登录之后,跳转至下载链接,发现文件可以正常下载。
打开https://n5eil01u.ecs.nsidc.org,在页面打开调试模式(F12),选择Console,输入document.cookie,可以看到自己登录之后的Cookie:
如何获取网站的cookie.png那么剩下的就是下载了,用了女神推荐的函数:
第一种
# --------------------第一种:使用headers携带cookie-----------------------------
# coding = utf-8
import requests
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64),
'Cookie':'_ga=GA1.2.1096053304.1523154394; googtrans=/en/zh-CN; _ceg.s=p6uhnx; _ceg.u=p6uhnx',
}
# 发起请求,获取二进制数据
html_str = requests.get(url,headers=headers).content
# 写入文件,采用二进制写入文件
with open('路径/文件名.后缀','wb') as f:
f.write(html_str)
第二种
# --------------------第二种:在requests直接携带--------------------------------
# coding = utf-8
import requests
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64)'
}
# cookies = {你的cookies,这里必须是以键值对,也就是字典的形式}
cookies = {"_ga": "GA1.2.1096053304.1523154394", "googtrans": "/en/zh-CN", "_ceg.s": "p6uhnx", "_ceg.u": "p6uhnx", " CIsForCookie_OPS": "Wss4tcCozd0AANFW49YAAABM"}
# 发起请求,获取二进制数据
html_str = requests.get(url,headers=headers,cookies = cookies).content
# 写入文件,采用二进制写入文件
with open('路径/文件名.后缀','wb') as f:
f.write(html_str)
最后成功的下载了文件。
Python大法系列文章
python 自动下载文件_【Py大法系列--03】Python如何自动下载文件相关推荐
- python爬虫下载文件-【Py大法系列--03】Python如何自动下载文件
问题描述 Python自动下载文件,通用文件,包括但不限于压缩文件.图片等. 解决方法 一般情况下,Python下载文件的方式有以下几种: 利用urllib.urllib2,即Python爬虫用的最多 ...
- python自己写包_如何将自己的Python包发布到PyPI
以前写过一篇类似的文章: 如何打包自己的项目并且发布到pypi上,不过由于PyPI进行了一些更新,因此旧方法不大适用了.趁端午有时间,想把haipproxy的客户端发布到PyPI,以改进用户体验,因此 ...
- python新手入门教程思路-Python新手入门教程_教你怎么用Python做数据分析
Python新手入门教程_教你怎么用Python做数据分析 跟大家讲了这么多期的Python教程,有小伙伴在学Python新手教程的时候说学Python比较复杂的地方就是资料太多了,比较复杂.很多网上 ...
- python输出日志到文件_【已解决】Python中,如何让多个py文件的logging输出到同一个日志log文件...
[问题] 有一个比较长的python脚本文件,其中关于log日志输出,用的是logging,对应初始化代码为:logging.basicConfig( level = logging.DEBUG, f ...
- python文件都是脚本吗_脚本语言系列之Python | Python文件IO
Python是做自动化工作首选的一门语言,与更复杂的语言相比,Python 非常便于快速学习.语法很少,具有良好的 可读性,即使测试工程师们没有丰富的编码经验,也能快速学会:Python 的极简风格对 ...
- python视频网站项目_价值2400元的python全栈开发系列Flask Python Web 网站编程视频
2 e/ b4 F1 c' H$ D! X 价值2400元的python全栈开发系列Flask Python Web 网站编程视频-优品课堂' z3 _1 Y7 ]6 j4 z # p# r# g* ...
- python打包成exe导入文件_【转载】将python脚本打包成exe文件
标签: exe文件也就是可以直接执行的文件.通常我们编好的带py后缀的脚本文件都是需要在有python的环境下执行, 每次通过Win + R打开运行窗口再输入powershell打开控制台,再千辛万苦 ...
- 【Py大法系列--01】20多行代码生成你的微信聊天机器人
前言 近期Stack Overflow公布了一项调查显示,Python已经成了发展最快的主流编程语言,Python搭乘着数据科学和机器学习以及人工智能的浪潮,席卷了整个技术圈.越来越多的人想了解.想学 ...
- python迅雷远程下载页面_【教程】Chrome浏览器添加迅雷下载支持
2019年4月28日更新: 目前官方最新版本的迅雷X已经实现自动安装Chrome扩展,无需手动安装. 请仍在使用老版本迅雷的雷友升级到官方最新版本的迅雷X. 以下内容已经过期 最近一段时间,Googl ...
最新文章
- iOS tableview的常用delegate和dataSource执行顺序
- 编程方法学7:循环与一半
- webpack的安装和使用
- 中石油训练赛 - 01 Matrix(构造)
- 盘点填报功能的9大应用场景,解决填报难题(附模板)
- vc++学习精髓(收集,整理)
- 首批6款5G旗舰手机开卖 最低售价过万!全家桶套餐更酸爽...
- pgpool-II3.1 的内存泄漏(五)
- ICCV11 Distributed Cosegmentation via Submodular Optimization on Anisotropic Diffusion
- mac地址厂商查询_3.15干货你的手机mac地址泄漏了吗
- 量子力学原理-波恩的概率论
- 模2除法(CRC检验码)
- Scratch编程入门-画图模块1【认识画图模块积木】
- 结构化分析和面向对象分析的区别 例子_淘宝客佣金是什么意思?跟淘宝客服务费有什么区别?-【邯郸seo】...
- 有比鸿蒙还强的境界吗,《庄子》鸿蒙问道:看似愚昧,实则为大境界
- PTA 六度空间 思路分析及代码解析
- 关于java中的连等赋值问题(雷惊风)
- 落日海鸥(Seagulls)
- Sequencer框架
- 事业单位工资计算机公积金计算,求问事业单位住房公积金如何计算
热门文章
- Zeppelin介绍
- Axure高保真移动端电商app通用模板、axure高保真移动端教育app通用模板、旅游app通用模板、电商app、教育app、旅游app 、直播、在线教育、旅游、Axure原型、rp原型
- SQLAlchemy框架
- 二叉搜索树的后序遍历序列(important!)
- 玩深度学习选哪块英伟达 GPU?有性价比排名还不够!
- MVC之Ajax如影随行
- 【转】JavaScript中的匿名函数及函数的闭包
- Spring,FetchType.LAZY和FetchType.EAGER什么区别?
- 图解硬盘分区调整/硬盘分区重新调整的好软件/Norton PartitionMagic 版本 8.05 硬盘分区调整/想把硬盘空间调整一下...
- 越狱(第二季)19集,开始了!