如何在php中设置cURL以仅获得网页的可打印版本


How do you set up cURL in php to only get the printable version of a webpage?

我正试图使用php中的cURL从别人的网站复制HTML源代码。我只想得到他们指定的可打印的HTML,而不是他们的页眉、页脚和图像。我的目的是加快下载速度,减轻他们网站的负担。他们8年来首次更新了自己的页面,并改为使用CSS而不是GET变量来指定页面的可打印版本。是否可以告诉cURL只返回可打印的元素?编辑:他们在CSS中使用了很多这样的语句:

@media print {
    .visible-print-block {
        display: block !important;
    }
}

这可能不是您所期望的答案,但除了解析DOM树和自己呈现HTML之外,您无法生成可打印的版本。

然而,早在1999年,对于基于网络的电子邮件,我们就使用了这样的东西:

system("lynx --dump 'www.microsoft.com'");

这很有效,但是:

  • 可能在linux上开箱即用,在MacOSWindows上,您需要安装lynx浏览器
  • 它很慢,因为它是fork lynx浏览器
  • 您需要注意并对域进行编码,可能使用escapeshellarg
  • lynx不支持Javascript,也不支持非常高级的CSS

另一种方法是使用许多软件包中的一些来制作屏幕截图。然而,它们将生成图像而不是文本。