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 其他可能有类似问题的人。
我目前正在从 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 其他可能有类似问题的人。