我正在尝试使用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。
答案 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
保存在工作目录中。