【问题标题】:How can I crawl an HTML5 website and convert its HTML content to PDF (using a Python or Ruby library)?如何抓取 HTML5 网站并将其 HTML 内容转换为 PDF(使用 Python 或 Ruby 库)?
【发布时间】:2012-08-19 13:50:30
【问题描述】:

我正在寻找 Ruby 或 Python 的引擎/解决方案/框架/gem/egg/lib/whatever 来登录网站、抓取 HTML5 内容(主要是画布上的图表)并能够对其进行转换转换成 PDF 文件(或图像)。

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

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

【问题讨论】:

  • 可能可以使用无头浏览器完成此操作。
  • 这正是我的想法,但我希望它可以通过 Python 或 Ruby 编写脚本 - 有什么想法吗?
  • 见:Rendering 我想你需要寻找一个与 Python 或 Ruby 交互的?
  • 看起来 Capybara 是一个 Ruby 项目,Zombie.js 和 PhantomJS 都以某种方式支持该项目。
  • 你可能可以通过PDFKit kit = PDFKit.new('http://google.com') 实现这一目标。

标签: javascript python ruby html frameworks


【解决方案1】:

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

您的问题分为两部分:

1.如何抓取网站

可以使用 Mechinize 进行爬网,但正如您所说,它对 Javascript 的性能不是很好。所以一种替代方法是使用 Capybara-webkit 或 Selenium (firefox / chrome)。

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

2。如何将输出转换为 PDF

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

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

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

【讨论】:

  • 实际上,zombie.js 和 python 做到了——谢谢你的回答
  • 我不能这样做,因为它是由我公司授权的 :( 抱歉。
猜你喜欢
  • 1970-01-01
  • 2010-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-30
  • 1970-01-01
  • 2011-08-13
相关资源
最近更新 更多