Я не могу получить полный файл xls, только заголовок таблицы по запросам python3 - PullRequest
1 голос
/ 08 октября 2019

Я хочу экспортировать отчет с веб-сайта , когда я нажму на кнопку экспорта, он загрузит файл xls.

Во-первых, у почтальона я могу получить конкурентаreport результат ответа почтальона img

это заголовки ответов в почтальоне

Cache-Control: no-cache
Cache-Control: no-store
content-disposition: attachment;filename=U3sdad.xls
Content-Language: zh-CN
Date: Tue, 08 Oct 2019 10:17:24 GMT
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Pragma: no-cache
Server: Apache-Coyote/1.1
Transfer-Encoding: chunked

Но когда я использую запросы, я просто получаю заголовки таблиц в файле xls. Я пытался использовать 2 способа, чтобы получить xls

1:

#I ues session,because i need cookie to login
s = requests.session()
report_response = s.get(url=report_url, params=params)
with open('1.xls','wb') as f:
    f.write(report_response.content)

2:

#I ues session,because i need cookie to login
s = requests.session()
report_response = s.get(url=report_url, params=params,stream=True,allow_redirects=True)
with open('1.xls','wb') as f:
    for chunk in report_response.iter_content(chunk_size=512):
        if chunk:
           f.write(chunk)

Но они не могут получить конкурирующий файл xls, как почтальон,Я не знаю почему, и я не нахожу решение в Google

1 Ответ

1 голос
/ 08 октября 2019

Попробуйте

import requests
dls = "http://url/path/to.xls"
resp = requests.get(dls)

output = open('test.xls', 'wb')
output.write(resp.content)
output.close()

или это

import requests
dls = "http://url/path/to.xls"
resp = requests.get(dls)
with open('test.xls', 'wb') as output:
    output.write(resp.content)

оба должны работать.

...