【问题标题】:Use python-firefox-selenium to fill form and download redirected page as pdf使用 python-firefox-selenium 填写表单并将重定向页面下载为 pdf
【发布时间】:2019-09-23 23:33:10
【问题描述】:

我想从网页上自动下载一些详细信息,该网页有一个要填写的表格。点击进入后,页面被重定向到另一个 URL,其中包含一个 pdf 文件。我想下载pdf文件。我尝试另存为 html,但它根本没有任何信息。也尝试过截屏,但是对于单个文件,需要多张截图。我希望将页面下载为 pdf。

  1. 尝试另存为 html - html 文件不包含任何信息
  2. 尝试过的屏幕截图 - 一个页面不止一个屏幕截图 - 复杂性
  3. 尝试使用 pdfkit - 它会重新呈现 url,因此会丢失输入的凭据,从而导致错误页面。

我了解模拟浏览器的“保存”选项并不容易。但不幸的是,这是我想要的。

【问题讨论】:

    标签: python selenium pdf firefox


    【解决方案1】:

    很好的问题。我之前遇到过这个问题,发现我加入了以下代码的 sn-ps。它将被下载,而不是在浏览器中显示 PDF。

    # firefox profile to download PDF
    mime_types_pdf = "application/pdf,application/vnd.adobe.xfdf,application/vnd.fdf,application/vnd.adobe.xdp+xml"
    mime_types = mime_types_pdf
    fp = webdriver.FirefoxProfile()
    fp.set_preference("browser.download.folderList", 2)
    fp.set_preference("browser.download.manager.showWhenStarting", False)
    fp.set_preference("browser.download.dir", os.getcwd())
    fp.set_preference("browser.helperApps.neverAsk.saveToDisk", mime_types)
    fp.set_preference("browser.helperApps.neverAsk.openFile", mime_types)
    fp.set_preference("plugin.disable_full_page_plugin_for_types", mime_types)
    fp.set_preference("pdfjs.disabled", True)
    geckodriver = '[path_to_your_firefox_driver]/geckodriver'
    driver = webdriver.Firefox(executable_path=geckodriver, firefox_profile=fp)
    

    【讨论】:

    • 非常感谢您的帮助。有效!我之前尝试设置配置文件,但看起来 MIME 类型列表不完整。再次感谢你的帮助。我希望这也对其可能遇到类似问题的其他人有所帮助。由于我没有足够的声誉,因此我无法支持您的回答。对此感到抱歉。
    • 很高兴我能在 stackoverflow 上的第一篇文章中提供帮助。请将我的帖子标记为您问题的答案。编码愉快!
    猜你喜欢
    • 2020-08-04
    • 1970-01-01
    • 2018-08-11
    • 1970-01-01
    • 1970-01-01
    • 2011-07-07
    • 2021-02-01
    • 1970-01-01
    • 2018-03-08
    相关资源
    最近更新 更多