【问题标题】:parsing specific content from a url(webpage) in php, javascript从 php、javascript 中的 url(网页)解析特定内容
【发布时间】:2011-06-07 20:47:18
【问题描述】:

我使用一些 RSS 提要。他们中的一些人没有对他们的文章进行描述。

为了不只显示这些文章的标题而不显示描述,我想显示实际文章的前两段。

我尝试了stripos、file_get_contents,但我遇到了问题。在大多数页面中它可以正常工作,但在其他页面中它会抓取第一个 <p> 标记(例如可以是侧边栏中的一个段落)并且与 RSS 提要中提到的文章无关。

您知道如何严格使用 PHP 或 JavaScript 从 URL 中获取主要内容吗?

提前致谢。

【问题讨论】:

  • 如果您需要从整个页面中捕获它,您要么必须拥有大量资源和时间,要么您不走运。谷歌在他们的搜索结果中尝试了这一点,即使他们在很多时候都弄错了......你可以使用DOM 或其他东西为一小部分已知页面写一些东西,但不要指望任何简单的解决方案。
  • 很遗憾,这些网页是未知的。它们的结构不同。

标签: php javascript html


【解决方案1】:

想到的第一个想法是从 p 中删除标签,然后仅在段落中实际文本的长度大于某个阈值时才使用该部分。也许也检查一定数量的 [.?!] 。如果号码不存在,则转到下一个。

【讨论】:

【解决方案2】:

您可能还想尝试抓取,它允许您“抓取”页面并解析其内容。 http://simplehtmldom.sourceforge.net/ 具有类似 jQuery 的语法,应该可以让您快速获得所需的内容。

抓取有其自身的注意事项,因为某些网站可能不会善待您收集数据并可能会阻止您的尝试。您可能想了解这种方法的优缺点,但它确实很强大。

这里还有关于抓取 RSS 提要的信息:http://blog.5ubliminal.com/posts/rsscraping-scraping-rss-with-php-dom-xpath/,我没有尝试过。

编辑:Wrikken's link 比我的好。那里有一些不错的选择。

【讨论】:

  • 如果可以避免,请不要使用 SimpleHTMLDOM:它比其他替代品慢得多,请参阅here 以获取有关 SO 的列表。
  • 感谢 Wrikken 提供的资源。现在将查看该页面。
  • 我相信解决方案可能是一种启发式算法,以便检查 html 密度较高的位置并从页面部分抓取内容。
猜你喜欢
  • 1970-01-01
  • 2013-04-23
  • 1970-01-01
  • 2015-02-23
  • 1970-01-01
  • 1970-01-01
  • 2017-08-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多