如何创建类似Facebook分享的URL提取器

5
5个回答

5

Embed.ly提供了一个很好的API,可以精确地实现这个目的。他们的API会返回网站的oEmbed数据(如果有的话),否则它会尝试提取页面的摘要,就像Facebook一样。


到目前为止最好的解决方案,但限制用户数量,但如果您的网站拥有足够的用户,Emdedly会向您收费,您将赚取足够的金额来支付每月支付50,000次查询所需的10美元至100美元的费用,免费版本每月仅提供5,000次查询。在使用Embedly之前,只是一些有关它的小信息。总而言之,使用插件解决问题的最佳答案。除此之外,如果您正在从头开始,则cURL是唯一的其他方式。 - NodeDad

4

使用类似cURL的工具获取页面,然后使用类似Simple HTML DOM的工具解析并提取所需元素。


谢谢,麻烦您还能给我提供一些关于Python的工作内容吗? - SMSM

2
如果网站支持oEmbed,那么使用它比解析HTML更容易且更可靠:
oEmbed是一种格式,允许第三方网站嵌入URL的表示形式。简单的API允许网站在用户发布指向该资源的链接时显示嵌入式内容(如照片或视频),而无需直接解析该资源。
oEmbed受到YouTube和Flickr等网站的支持。

1

我正在为这个问题而工作的一个项目上,它并不像编写HTML解析器那样容易,并期望网站是“语义化”的。特别是提取视频和查找自动播放参数非常困难。您可以在http://www.embedify.me中检查该项目,其中还有类似于fb的URL预览脚本。据我所见,embed.ly和oembed是被动解析器,它们需要网站支持它们,所谓的提供者,这种方法与fb的方法非常不同。


1
谢谢。非常好用。如果有可下载的自托管版本会更好。 - Artur Bodera

-1

当我在寻找类似功能时,我发现了一个基于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的经典描述标记,但它很好地说明了原理。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接