python请求post无返回结果_Python请求POST返回不完整的内容
我正在尝试使用Python Requests库下载csv文件 . 我正在使用Requests库,因为我首先必须通过免责声明页面,所以我使用Session对象存储所有cookie和所有爵士乐 . 我的POST请求一直返回,响应内容只是csv文件的前6行 . 当我使用浏览器下载文件时,它长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
我还应该提一下,我也尝试通过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行 .
我认为我的内容没有完全加载,因为我在请求 Headers 中遗漏了一些内容 . 这是(工作)浏览器请求标头:
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
工作浏览器响应头:
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
来自python post请求的请求标头(我的响应缺少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响应头(我失去了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
有谁知道如何发出一个返回整个csv文件的POST请求?
python请求post无返回结果_Python请求POST返回不完整的内容相关推荐
- python os.system返回值_python os.system()返回值判断
最近遇到os.system()执行系统命令的情况,上网搜集了一下资料,整理如下,以备不时之需,同时也希望能帮到某些人. 一.python中的 os.system(cmd)的返回值与linux命令返回值 ...
- python怎么调用函数的返回值_python函数的返回值是什么
返回值简介 函数需要先定义后调用,函数体中 return 语句的结果就是返回值.如果一个函数没有 reutrn 语句,其实它有一个隐含的 return 语句,返回值是 None,类型也是 'NoneT ...
- 获取python脚本的返回值_Python多线程获取返回值代码实例
这篇文章主要介绍了Python多线程获取返回值代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在使用多线程的时候难免想要获取其操作完的返回值 ...
- python爬app无水印视频_Python爬虫:短视频平台无水印下载 (上)
导入: 虽然目前有些软件还没适配,但是,我发了 Blink 后有一写人留言或者私信找我要源码,不过我还在增加适配的软件,所以还没有时间写这篇博客,今天呢,就先把我目前适配了的代码拿出来,后续还会继续适 ...
- if python 判断函数返回值_Python函数的返回值和作用域
函数的返回值和作用域 1.返回值 def guess(x): if x > 3: return "> 3" else: return "<= 3&quo ...
- python字典items返回什么_Python 字典items返回列表,iteritems返回迭代器
说明:items以列表方式返回字典中的键值对,iteritems以迭代器对象 返回键值对儿(Python3中不再支持): 字典items()方法和iteritems()方法,是python字典的内建函 ...
- python writerow 返回值_python – .writerow()csv返回一个数字而不是写行
我正在使用Python 3测试一些非常简单的代码.出于某种原因,下面的代码生成一个空输出,而不是写一行 import csv output = open('hello world.csv', 'w', ...
- python的匿名函数返回值_Python匿名函数返回值输出问题望指点
该段的匿名函数作为返回值返回,那请问可以输出对应的值吗?小白途中!望各位指点! def build(x, y): return lambda: x * x + y * y 1.匿名函数在一定意义上应该 ...
- [转载] python解析返回结果_python:解析requests返回的response(json格式)说明
参考链接: python-json 8: 解析requrst的响应 我就废话不多说了,大家还是直接看代码吧!jte免费资源网 import requests, json r = requests.ge ...
最新文章
- Django使用数据库(Mariadb/Mysql)
- 使用Apriori算法进行关联分析
- LDR 、ADR介绍
- linux查看删除init内容,linux常用命令
- 学习笔记(2)centos7 下安装mysql
- 客户关系管理之会员管理(转)
- Linux开发环境——SSH工具
- 上海大华条码称代码_上海大华条码秤使用说明书样本
- python编写udp端口扫描工具全
- 我们试用了市面上几款微信自动化软件,哪家弱哪家强?
- web_dynpro_ALV:(包ZLYTEST2)(alv 的事件只需注意一个R_PARAM就哦了)
- template-模板完全特化
- 安卓开发良好的习惯(想到就更新)
- 【Python】绘制GPX轨迹图并定位特定时间点
- iqooneo3支持鸿蒙系统吗,iQOO Neo3搭载144Hz竞速屏:支持全局自适应刷新率
- 《数据结构与算法》课程设计:18-背包问题
- 解决谷歌浏览器无法输入中文的问题
- Anaconda的卸载及安装(图文详解)
- iphone文稿和数据怎么迁移到iCloud云端
- 浅析嵌入式系统之uboot详解(5.3)—PWM定时器(番外)