python请求post无返回结果_Python请求POST返回不完整的内容
我正在嘗試使用Python Requests庫(kù)下載csv文件 . 我正在使用Requests庫(kù),因?yàn)槲沂紫缺仨毻ㄟ^(guò)免責(zé)聲明頁(yè)面,所以我使用Session對(duì)象存儲(chǔ)所有cookie和所有爵士樂(lè) . 我的POST請(qǐng)求一直返回,響應(yīng)內(nèi)容只是csv文件的前6行 . 當(dāng)我使用瀏覽器下載文件時(shí),它長(zhǎng)1622行 . 我目前的劇本:
import logging
logging.basicConfig(level=logging.DEBUG)
import pdb
import requests
s = requests.Session()
## Disclaimer page session
dis_url = 'http://a100.gov.bc.ca/pub/gwl/disclaimer.do'
accept_form = {'submitType':'Accept'}
s.post(dis_url, data=accept_form)
## POST request
base_url = 'http://a100.gov.bc.ca/pub/gwl/plot.do'
postContent = {
'fromYear':'2012',
'fromMonth':'1',
'fromDay':'1',
'toYear':'2013',
'toMonth':'1',
'toDay':'1',
'emsIDs':'E290172' ,
'mode':'GRAPH',
'mmaFlags':'false',
'submitType':'Download'}
httpHeaders = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Host': 'a100.gov.bc.ca',
'Connection': 'keep-alive',
'Content-Length': '155',
'User-Agent': 'python-requests/1.2.3 CPython/2.7.3 Linux/3.5.0-23-generic',
'Content-Type': 'application/x-www-form-urlencoded',
'Referer': 'http://www.env.gov.bc.ca/wsd/data_searches/obswell/map/obsWells.html',
'Accept-Encoding': 'gzip,deflate,sdch',
'Accept-Language': 'en-US,en;q=0.8'}
r = s.post(base_url, data=postContent, headers=httpHeaders, stream=False, timeout=3600)
print r.content
我還應(yīng)該提一下,我也嘗試通過(guò)chunking返回csv,如下所示:
with open("report.csv",'wb') as file:
r = s.post(base_url,stream=True,timeout=3600, data=postContent, headers=httpHeaders)
for chunk in r.iter_content(chunk_size=1024):
if chunk:
file.write(chunk)
file.flush()
但我仍然只獲得report.csv中的前6行 .
我認(rèn)為我的內(nèi)容沒(méi)有完全加載,因?yàn)槲以谡?qǐng)求 Headers 中遺漏了一些內(nèi)容 . 這是(工作)瀏覽器請(qǐng)求標(biāo)頭:
POST /pub/gwl/plot.do HTTP/1.1
Host: a100.gov.bc.ca
Connection: keep-alive
Content-Length: 155
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: http://www.env.gov.bc.ca
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: http://www.env.gov.bc.ca/wsd/data_searches/obswell/map/obsWells.html
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.
Cookie: JSESSIONID=73de9312c8dcf1c4c657d19adbe811b88792479fe72eb2e2feeedea7d88bdbf8.e3uMah8KbhmLe3mMbN8Pa3uPbi1ynknvrkLOlQzNp65In0; WT_FPC=id=2fcd604924a9af3c13e1374599088181:lv=1383612362138:ss=1383612301792
工作瀏覽器響應(yīng)頭:
HTTP/1.1 200 OK
Date: Mon, 04 Nov 2013 20:59:52 GMT
Server: Oracle-Application-Server-10g/10.1.2.2.0 Oracle-HTTP-Server
Content-Disposition: attachment; filename="gwl_report.csv"
Cache-Control: must-revalidate
Content-Type: application/download
Set-Cookie: JSESSIONID=61d874e1b5ce07df96aaabe504d7c18788e5aaf773a7bee7ab4b0cf349a88aaa.e3uMah8KbhmLe3mMbN8Pa3uPbi1ynknvrkLOlQzNp65In0; path=/pub/gwl
Transfer-Encoding: chunked
來(lái)自python post請(qǐng)求的請(qǐng)求標(biāo)頭(我的響應(yīng)缺少Transfer-Encoding:chunked):
Content-Length : 126
Accept-Language : en-US,en;q=0.8
Accept-Encoding : gzip,deflate,sdch
Connection : keep-alive
Accept : text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent : python-requests/1.2.3 CPython/2.7.3 Linux/3.5.0-23-generic
Host : a100.gov.bc.ca
Referer : http://www.env.gov.bc.ca/wsd/data_searches/obswell/map/obsWells.html
Cookie : JSESSIONID=9a51e637cccc6164e4784631ef9a0ab21574c518c1c5c86cf0892bbf2aa22c95.e3uMah8KbhmLe3mMbN8Pa3uPbi1ynknvrkLOlQzNp65In0
Content-Type : application/x-www-form-urlencoded
Python響應(yīng)頭(我失去了Transfer-Encoding:chunked):
content-length : 200
content-disposition : attachment; filename="gwl_report.csv"
set-cookie : JSESSIONID=9a51e637cccc6164e4784631ef9a0ab21574c518c1c5c86cf0892bbf2aa22c95.e3uMah8KbhmLe3mMbN8Pa3uPbi1ynknvrkLOlQzNp65In0; path=/pub/gwl
server : Oracle-Application-Server-10g/10.1.2.2.0 Oracle-HTTP-Server
cache-control : must-revalidate
date : Tue, 05 Nov 2013 00:51:47 GMT
content-type : application/download
有誰(shuí)知道如何發(fā)出一個(gè)返回整個(gè)csv文件的POST請(qǐng)求?
總結(jié)
以上是生活随笔為你收集整理的python请求post无返回结果_Python请求POST返回不完整的内容的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: vue请求在退出页面还执行吗_如何用 C
- 下一篇: python opencv图片旋转180