提取 HTML 页面的一部分


Extracting portion of the HTML page

是否可以提取远程HTML页面的一部分,并使用PHP cURL,HTML DOM解析器或任何其他方法将其打印到另一个页面上,保留原始格式样式,图像,选项卡功能?例如,如何从 http://ru.yahoo.com/中提取中心列的内容(带有制表符和格式,保留原始文本的外观)?

据我了解,脚本应该处理外部 CSS,以便返回的内容具有与原始内容相同的外观。如果可能的话,最合适的方法是什么?如果是,将不胜感激。我看了几个例子,但没有找到任何适合我的情况的解决方案。

好吧,如果我必须快速完成(阅读:非常肮脏),我会这样做,我认为:

  1. 使用标准 PHP 从远程服务器中提取 HTML
  2. 使用您从其他网站窃取的 HTML,并在底部添加您自己的 HTML。
  3. 还可以添加您自己的 CSS 以隐藏您不希望显示的其他网站的 html,并设置您自己的 html 样式。

摆弄直到它看起来足够好。但是:我认为由于相同的域策略,这将中断外部JS文件的加载。

一个不错的方法是:

  1. 使用标准 PHP 从远程服务器中提取 HTML
  2. 使用一些PHP HTML解析器解析HTML,并去除所有外部CSS和JS文件并提取这些文件。
  3. 使用 XPath 提取所需的部件。
  4. 创建一个新的HTML文档,其中包含您自己的HTML,所需的部分,指向新下载的CSS和JS文件的新链接。还可以添加您自己的 CSS 和 JS 来设置结果样式。

你知道:RSS就是为此而发明的,如果他们不提供RSS提要,他们很可能不希望你获取内容并将其发布在你自己的网站上。 :P