如何通过https python请求下载文件

时间:2015-09-10 05:45:12

标签: python python-requests

我正在尝试使用python请求通过https下载文件。我为此写了一个示例代码。当我运行我的代码时,它不会下载链接中给出的pdf文件。而是下载登录页面的html代码。我检查了响应状态代码,它给出200.要下载文件登录是必要的。如何下载文件?

我的代码:

import requests
import json

# Original File url = "https://seller.flipkart.com/order_management/manifest.pdf?sellerId=8k5wk7b2qk83iff7"

url = "https://seller.flipkart.com/order_management/manifest.pdf"
uname = "xxx@gmail.com"
pwd = "xxx"
pl1 = {'sellerId':'8k5wk7b2qk83i'}
payload = {uname:pwd}
ses = requests.Session()
res = ses.post(url, data=json.dumps(payload))
resp = ses.get(url, params = pl1)
print resp.status_code
print resp.content

我尝试了多种解决方案,包括使用我的登录功能发送POST请求使用请求'会话对象然后使用相同的会话对象下载文件。但它没有奏效。 编辑: 它仍然返回登录页面的html。

2 个答案:

答案 0 :(得分:0)

您是否尝试过将auth param传递给GET?像这样的东西:

resp.content

您可以将fd = open('myfile.pdf', 'wb') fd.write(resp.content) fd.close() 写入本地文件myfile.pdf

javascript_include_tag

答案 1 :(得分:-4)

不要使用请求 - 它有时会出现编码错误和其他问题。我建议在Windows终端中使用wget。所以你的代码看起来像这样:

import os
os.system("wget https://seller.flipkart.com/order_management/manifest.pdf")

然后该文件将在manifest.pdf保存在工作目录中。