我需要从URL中提取数据,例如标题、描述以及给定URL中的任何视频和图像,例如Facebook分享按钮。
例如: http://www.facebook.com/sharer.php?u=http://www.wired.com&t=Test 祝好。
例如: http://www.facebook.com/sharer.php?u=http://www.wired.com&t=Test 祝好。
Embed.ly提供了一个很好的API,可以精确地实现这个目的。他们的API会返回网站的oEmbed数据(如果有的话),否则它会尝试提取页面的摘要,就像Facebook一样。
我正在为这个问题而工作的一个项目上,它并不像编写HTML解析器那样容易,并期望网站是“语义化”的。特别是提取视频和查找自动播放参数非常困难。您可以在http://www.embedify.me中检查该项目,其中还有类似于fb的URL预览脚本。据我所见,embed.ly和oembed是被动解析器,它们需要网站支持它们,所谓的提供者,这种方法与fb的方法非常不同。
当我在寻找类似功能时,我发现了一个基于jQuery和PHP的Facebook消息URL提取功能演示:
http://www.99points.info/2010/07/facebook-like-extracting-url-data-with-jquery-ajax-php/它不使用HTML DOM解析器,而是使用简单的正则表达式。它查找标题、描述和img标签。因此,对于许多使用CSS来显示图片的网站,图像提取效果并不理想。此外,Facebook首先查看自己的元标记,然后再查看HTML的经典描述标记,但它很好地说明了原理。