问题描述

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如何自动下载文件相关推荐

  1. python爬虫下载文件-【Py大法系列--03】Python如何自动下载文件

    问题描述 Python自动下载文件,通用文件,包括但不限于压缩文件.图片等. 解决方法 一般情况下,Python下载文件的方式有以下几种: 利用urllib.urllib2,即Python爬虫用的最多 ...

  2. python自己写包_如何将自己的Python包发布到PyPI

    以前写过一篇类似的文章: 如何打包自己的项目并且发布到pypi上,不过由于PyPI进行了一些更新,因此旧方法不大适用了.趁端午有时间,想把haipproxy的客户端发布到PyPI,以改进用户体验,因此 ...

  3. python新手入门教程思路-Python新手入门教程_教你怎么用Python做数据分析

    Python新手入门教程_教你怎么用Python做数据分析 跟大家讲了这么多期的Python教程,有小伙伴在学Python新手教程的时候说学Python比较复杂的地方就是资料太多了,比较复杂.很多网上 ...

  4. python输出日志到文件_【已解决】Python中,如何让多个py文件的logging输出到同一个日志log文件...

    [问题] 有一个比较长的python脚本文件,其中关于log日志输出,用的是logging,对应初始化代码为:logging.basicConfig( level = logging.DEBUG, f ...

  5. python文件都是脚本吗_脚本语言系列之Python | Python文件IO

    Python是做自动化工作首选的一门语言,与更复杂的语言相比,Python 非常便于快速学习.语法很少,具有良好的 可读性,即使测试工程师们没有丰富的编码经验,也能快速学会:Python 的极简风格对 ...

  6. 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* ...

  7. python打包成exe导入文件_【转载】将python脚本打包成exe文件

    标签: exe文件也就是可以直接执行的文件.通常我们编好的带py后缀的脚本文件都是需要在有python的环境下执行, 每次通过Win + R打开运行窗口再输入powershell打开控制台,再千辛万苦 ...

  8. 【Py大法系列--01】20多行代码生成你的微信聊天机器人

    前言 近期Stack Overflow公布了一项调查显示,Python已经成了发展最快的主流编程语言,Python搭乘着数据科学和机器学习以及人工智能的浪潮,席卷了整个技术圈.越来越多的人想了解.想学 ...

  9. python迅雷远程下载页面_【教程】Chrome浏览器添加迅雷下载支持

    2019年4月28日更新: 目前官方最新版本的迅雷X已经实现自动安装Chrome扩展,无需手动安装. 请仍在使用老版本迅雷的雷友升级到官方最新版本的迅雷X. 以下内容已经过期 最近一段时间,Googl ...

最新文章

  1. iOS tableview的常用delegate和dataSource执行顺序
  2. 编程方法学7:循环与一半
  3. webpack的安装和使用
  4. 中石油训练赛 - 01 Matrix(构造)
  5. 盘点填报功能的9大应用场景,解决填报难题(附模板)
  6. vc++学习精髓(收集,整理)
  7. 首批6款5G旗舰手机开卖 最低售价过万!全家桶套餐更酸爽...
  8. pgpool-II3.1 的内存泄漏(五)
  9. ICCV11 Distributed Cosegmentation via Submodular Optimization on Anisotropic Diffusion
  10. mac地址厂商查询_3.15干货你的手机mac地址泄漏了吗
  11. 量子力学原理-波恩的概率论
  12. 模2除法(CRC检验码)
  13. Scratch编程入门-画图模块1【认识画图模块积木】
  14. 结构化分析和面向对象分析的区别 例子_淘宝客佣金是什么意思?跟淘宝客服务费有什么区别?-【邯郸seo】...
  15. 有比鸿蒙还强的境界吗,《庄子》鸿蒙问道:看似愚昧,实则为大境界
  16. PTA 六度空间 思路分析及代码解析
  17. 关于java中的连等赋值问题(雷惊风)
  18. 落日海鸥(Seagulls)
  19. Sequencer框架
  20. 事业单位工资计算机公积金计算,求问事业单位住房公积金如何计算

热门文章

  1. Zeppelin介绍
  2. Axure高保真移动端电商app通用模板、axure高保真移动端教育app通用模板、旅游app通用模板、电商app、教育app、旅游app 、直播、在线教育、旅游、Axure原型、rp原型
  3. SQLAlchemy框架
  4. 二叉搜索树的后序遍历序列(important!)
  5. 玩深度学习选哪块英伟达 GPU?有性价比排名还不够!
  6. MVC之Ajax如影随行
  7. 【转】JavaScript中的匿名函数及函数的闭包
  8. Spring,FetchType.LAZY和FetchType.EAGER什么区别?
  9. 图解硬盘分区调整/硬盘分区重新调整的好软件/Norton PartitionMagic 版本 8.05 硬盘分区调整/想把硬盘空间调整一下...
  10. 越狱(第二季)19集,开始了!