javascript - 如何抓取 HTML5 网站并将其 HTML 内容转换为 PDF(使用 Python 或 Ruby 库)?

标签 javascript python ruby html frameworks

我正在寻找用于 Ruby 或 Python 的引擎/解决方案/框架/gem/egg/lib/任何东西来登录网站,抓取 HTML5 内容(主要是 Canvas 上的图表),并能够将其转换转换为 PDF 文件(或图像)。

我可以在 mechanize 中编写爬虫脚本,这样我就可以登录网站并爬取数据,但是 mechanize 不理解复杂的 JavaScript + HTML5。

所以基本上我在寻找一个 HTML5/JavaScript 解释器。

最佳答案

这个问题有点令人困惑......抱歉,在再次阅读问题后重新阅读我的答案。

您的问题分为两部分:

<强>1。如何抓取网站

抓取可以使用 Mechinize 完成,但正如您所说,它不能很好地执行 Javascript。因此,一种替代方法是使用 Capybara-webkit 或 Selenium (firefox/chrome)。

通常这用于测试,但您可以使用 Ruby 代码驱动它来导航各个页面。

<强>2。如何将输出转换为 PDF

如果您需要将抓取的内容转换为 PDF,我认为没有办法做到这一点。您可以使用 Capybara-webkit 或 Selenium 截取屏幕截图(对测试有用),但将其转换为 PDF 可能只是通过一些命令行实用程序将其泵送的问题。

如果您正在寻找真正的 HTML 到 PDF 转换器(通常用于从 Rails 应用程序中的 View 生成报告),那么请使用 PDFKit

基本上它是一个可以输出为 PDF 的 WebKit 浏览器。运行起来非常简单。

关于javascript - 如何抓取 HTML5 网站并将其 HTML 内容转换为 PDF(使用 Python 或 Ruby 库)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12101926/

相关文章:

python - 进口抱枕无需安装

python - 使用 OpenCV 进行图像模糊检测

ruby - 为什么 Ruby 的标准库有 DateTime 类?

ruby-on-rails - Ruby on Rails : Displaying Database Data from id?

javascript - 无法呈现简单的 HTML 页面示例

javascript - 如何创建倒计时器?

python - 提示用户直到输入 5 个独特的元音或辅音

ruby-on-rails - Rails 保存返回 true 但不保存任何内容

javascript - PreloadJS 加载图像,但无法将其插入到 DOM

javascript - 无法从 Javascript 应用程序访问 Heroku Config Vars 中的 API key