【发布时间】:2017-08-04 15:17:59
【问题描述】:
我正在使用模块 python pdfkit:https://pypi.python.org/pypi/pdfkit
我要转换为 pdf 的页面有一个模式窗口,其中涵盖了我需要保存在 pdf 中的内容,我正在通过 python 请求访问。我需要做的是关闭模态,然后调用 pdfkit.from-url 方法:pdfkit.from_url('http://the_page.com', 'out.pdf', options={'cookie': s.cookies.items()})
但我不知道是否可以使用请求删除模式。而且我不想使用硒!
有什么办法吗?
【问题讨论】:
-
只是一个一般建议,你能不能通过 URLLib(或类似的东西)单独获取 HTML,编辑掉模态,然后使用
pdfkit.from_string(HtmlString, 'out.pdf')?或者,由于 PDFKit 似乎依赖 WebKit 在保存之前创建模型渲染,您可能只能使用.replace(...)或类似的东西在模态元素上插入style='display:none;'。不过,作为参考,我没有使用 PDFKit 的经验,所以这些只是在黑暗中拍摄。 -
它可以工作,但不是我想要的方式,它会丢失页面的 css 和图像,并仅使用非外部 css 生成 pdf。发生这种情况是因为 from_string 仅使用页面的文本而不是其资源,因为 from_url 获取所有内容!
-
我在随机浏览堆栈溢出时遇到了一个问题,让我想起了你的问题。您可以为此使用PhantomJS。我不确定如果没有 Selenium 是否可以做到这一点,但它可能值得探索。
-
有很多方法可以做到这一点......将外部css插入到htmlstring中;使用 beautifulsoup 移除模态窗口;插入使窗口不可见的 css
标签: python python-requests pdfkit