如何从 Javascript 生成的 POST 请求下载 pdf?

How do I download a pdf from a Javascript-generated POST request?

据我所知,该站点需要单击按钮,这会运行一些 Javascript,然后发送 POST 请求。 POST 请求 returns pdf。我找到的用于下载文件的所有解决方案要么使用 WebClient(但我没有用于 pdf 的 URL),要么使用 HTTPRequest(无法调用点击)。

我可以使用 WebBrowser 调用点击,我可以使用 Fiddler 看到网站的响应中返回了 pdf,但我不知道如何将它放到我的机器上。

我能够使用 Selenium 解决这个问题,将以下配置设置传递到 Firefox 驱动程序中:

profile = Firefox.FirefoxProfile()
profile.SetPreference("browser.download.dir", saveDir)
profile.SetPreference("browser.download.folderList", 2)
profile.SetPreference("browser.helperApps.neverAsk.saveToDisk","application/pdf")
profile.SetPreference("pdfjs.disabled",True)
profile.SetPreference("browser.tabs.remote.autostart", False)
profile.SetPreference("browser.tabs.remote.autostart.1", False)
profile.SetPreference("browser.tabs.remote.autostart.2", False)
profile.SetPreference("browser.tabs.remote.force-enable", "false")
driver = Firefox.FirefoxDriver(profile)

其中saveDir是目标下载目录。这些配置设置的前半部分是让 Firefox 在没有提示的情况下下载,browser.helperApps.neverAsk.saveToDisk 的值是 MIME 类型。配置的后半部分防止 Firefox 在调用 driver.Quit() 时崩溃。