【发布时间】:2010-06-08 17:03:07
【问题描述】:
我需要从 url 中提取数据 像标题、描述和给定 url 中的任何视频图像 喜欢 facebook 分享按钮
像这样: http://www.facebook.com/sharer.php?u=http://www.wired.com&t=Test
问候
【问题讨论】:
我需要从 url 中提取数据 像标题、描述和给定 url 中的任何视频图像 喜欢 facebook 分享按钮
像这样: http://www.facebook.com/sharer.php?u=http://www.wired.com&t=Test
问候
【问题讨论】:
Embed.ly 有一个很好的 api 来实现这个目的。如果可用,他们的 api 会返回网站的 oEmbed 数据 - 否则,它会尝试像 Facebook 一样提取页面摘要。
【讨论】:
使用cURL 之类的东西来获取页面,然后使用Simple HTML DOM 之类的东西来解析它并提取你想要的元素。
【讨论】:
如果网站支持oEmbed,这比抓取 HTML 更容易、更健壮:
oEmbed 是一种允许在第三方网站上嵌入 URL 表示的格式。简单的 API 允许网站在用户发布指向该资源的链接时显示嵌入的内容(例如照片或视频),而无需直接解析该资源。
YouTube 和 Flickr 等网站都支持 oEmbed。
【讨论】:
我正在为这个问题做一个项目,它不像编写一个 html 解析器并期望网站是“语义的”那么容易。尤其是提取视频和查找自动播放参数是很致命的。您可以在http://www.embedify.me 中查看该项目,该项目还有 fb 样式的 url 预览脚本。如我所见,embed.ly 和 oembed 是被动解析器,它们需要站点来支持它们,即所谓的提供程序,方法与 fb 完全不同。
【讨论】:
在寻找类似功能时,我遇到了 Facebook 消息的 url 提取功能的 jQuery + PHP 演示: http://www.99points.info/2010/07/facebook-like-extracting-url-data-with-jquery-ajax-php/
它不使用 HTML DOM 解析器,而是使用简单的正则表达式。它查找标题、描述和 img 标签。因此,图像提取在许多使用 CSS 图像的网站上表现不佳。此外,Facebook 首先查看其自己的元标记,然后查看 HTML 的经典描述标记,但它很好地说明了原理。
【讨论】: