Python 请求通过 HTTPS 隧道获取数据

Python request get data through HTTPS tunnel

我目前正在从 https://www3.bcb.gov.br/expectativas/publico/en/serieestatisticas

的 public 系列数据中提取数据

我相信这是一个使用 apache wicket 的 public 页面。

我通常可以接受抓取,无论是 GET 还是 POST。在这里,我和我的同事们被困住了。任何人都可以帮助理解 URL 需要使用什么来实际发出请求。到目前为止,这是我得到的:

带有输入的表单:

手动执行的Fiddler捕获:

文本视图: form19_hf_0=&indicador=0&calculo=0&linhaPeriodicidade%3Aperiodicidade=0&tfDataInicial=11%2F10%2F2015&tfDataFinal=11%2F24%2F2015&divPeriodoRefereEstatisticas%3AgrupoAnoReferencia%3AanoReferenciaInicial=16&divPeriodoRefereEstatisticas%3AgrupoAnoReferencia%3AanoReferenciaFinal=16&btnCSV=Generate+CSV

我在请求中传递的表单数据:

总结:

我需要一些帮助,我似乎无法让 POST 正常工作,它将我带到另一个页面,我不确定如何完成这一页。

注意:我正在尝试取回 CSV。

我使用的库主要是请求(我打算使用 LXML,但我认为它不适用于此处)。

我一直在尝试使用 Postman 和 Fiddler 找出正确的表单,以了解请求的内容。

所以,

这个问题的解决方案有些间接。我们无法直接执行 POST,因为页面以通常无法预测的方式增加了实际的 POST url。

我们使用的解决方案是安装 Selenium 网络驱动程序并使用它来模拟下拉可见值和按钮点击。

结果非常干净。

感谢和 HTH 其他可能有类似问题的人。