使用Python或浏览器复制POST请求

雷纳托·克鲁斯

因此,有一个巴西政府网站(https://www.rad.cvm.gov.br/ENET/frmConsultaExternaCVM.aspx),带有用于发送此POST请求的咨询按钮(“ Consultar”):

Request URL: https://www.rad.cvm.gov.br/ENET/frmConsultaExternaCVM.aspx/ListarDocumentos
Request Method: POST
Payload: { dataDe: '', dataAte: '' , empresa: '', tipoDocumento: '-2', dataReferencia: '', categoria: '-1', tipo: '-1', 
especie: '-1', periodo: '0', horaIni: '', horaFim: '', palavraChave:'',ultimaDtRef:'false', tipoEmpresa:'0'}

并返回此JSON作为响应:

{"d":{"__type":"Bovespa.Formularios.Shell.Presenters.RetornoTelaGerenciadorDocumento","temErro":false,
"expirouSessao":false,"msgErro":"","dados":"02504-6$&D1000 VAREJO FARMA PARTICIPAÇÕES S.A.$&Dados Eco
...

我正在尝试创建发送请求以获取上述响应的Python代码。

import requests

payload = { 'dataDe': '', 'dataAte': '' , 'empresa': '', 'tipoDocumento': '-2', 'dataReferencia': '', 'categoria': '-1', 'tipo': '-1', 'especie': '-1', 'periodo': '0', 'horaIni': '', 'horaFim': '', 'palavraChave':'','ultimaDtRef':'false', 'tipoEmpresa':'0'}
r = requests.post("https://www.rad.cvm.gov.br/ENET/frmConsultaExternaCVM.aspx/ListarDocumentos", params=payload, verify=False)

print(r.text)

# Tried with JSON Decoder as well but no success
# data=r.json()
# print(data)

但这会返回网页的HTML内容,而不是所需的响应。如果将“ requests.post”更改为“ requests.get”,结果相同。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1"><link href="App_Themes/CVM/Calendar/Skins/CVM/Calendar.css"
...

我也尝试在浏览器中发送GET请求,但未成功:

https://www.rad.cvm.gov.br/ENET/frmConsultaExternaCVM.aspx/ListarDocumentos?dataDe=&dataAte=&empresa=&tipoDocumento=-2&dataReferencia=&categoria=-1&tipo=-1&especie=-1&periodo=0&horaIni=&horaFim=&palavraChave=&ultimaDtRef=false&tipoEmpresa=0

我感谢任何建议。

安德烈·凯斯利(Andrej Kesely)

使用json=in参数requests.post()获取数据:

import json
import requests


payload = { 'dataDe': '', 'dataAte': '' , 'empresa': '', 'tipoDocumento': '-2', 'dataReferencia': '', 'categoria': '-1', 'tipo': '-1', 'especie': '-1', 'periodo': '0', 'horaIni': '', 'horaFim': '', 'palavraChave':'','ultimaDtRef':'false', 'tipoEmpresa':'0'}
r = requests.post("https://www.rad.cvm.gov.br/ENET/frmConsultaExternaCVM.aspx/ListarDocumentos", json=payload, verify=False)
data = r.json()

# print to screen:
print(json.dumps(data, indent=4))

印刷品:

{
    "d": {
        "__type": "Bovespa.Formularios.Shell.Presenters.RetornoTelaGerenciadorDocumento",
        "temErro": false,
        "expirouSessao": false,
        "msgErro": "",
        "dados": "02504-6$&D1000 VAREJO FARMA PARTICIPA\u00c7\u00d5ES S.A.$&Dados Econ\u00f4mico-Financeiros$&Press-release$&<spanOrder>Divulga\u00e7\u00e3o de 

...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在没有使用Python的浏览器的情况下,如何从HTML表单发出POST请求?

来自分类Dev

简单的POST请求可在Postman中使用,但不能在浏览器中使用

来自分类Dev

使用Postman在浏览器中打开保存的POST请求吗?

来自分类Dev

Laravel 4:如何使用浏览器插件以JSON格式发送POST请求?

来自分类Dev

如何保存浏览器会话的POST / GET请求?

来自分类Dev

从JAVA上的浏览器读取GET / POST请求

来自分类Dev

使用Clipboard.js从浏览器复制URL

来自分类Dev

使用 JMeter 复制浏览器和用户行为

来自分类Dev

如何使用Python请求伪造浏览器又访问并生成用户代理?

来自分类Dev

使用python请求屏蔽作为浏览器并下载文件

来自分类Dev

使用python关闭浏览器

来自分类Dev

使用python清除浏览器缓存

来自分类Dev

Python请求401错误,但URL在浏览器中打开

来自分类Dev

像浏览器一样的Python请求?

来自分类Dev

如何复制模型浏览器的功能?

来自分类Dev

Http请求多浏览器麻烦

来自分类Dev

安全浏览器扩展API请求

来自分类Dev

异步Ajax请求锁定浏览器

来自分类Dev

来自浏览器的重复请求

来自分类Dev

安全浏览器扩展API请求

来自分类Dev

异步Ajax请求锁定浏览器

来自分类Dev

同步Ajax请求“锁定”浏览器

来自分类Dev

浏览器 URL 和 HTTP 请求

来自分类Dev

请求 html 页面与浏览器不同

来自分类Dev

如何通过浏览器中的POST请求加载外部图像?

来自分类Dev

如何向用户浏览器传达它发出的POST请求没有副作用的信息?

来自分类Dev

POST多部分请求中浏览器的进度百分比。GWT

来自分类Dev

Python请求未返回与浏览器请求/ cURL相同的标题

来自分类Dev

Python请求错误400浏览器发送了无效请求

Related 相关文章

热门标签

归档