如何检索资源的og/meta属性?

mar*_*zzz 8 html javascript meta jquery opengraph

我正在制作一个在用户的Twitter上检索推文的应用程序.

这些Feed包含指向外部资源的链接,例如Artciles,网页或YouTube视频.

我在Twitter API中提供了这些Feed的JSON,但是没有包含og:内容的属性.而且我想抓住它们并显示到我的网站上.

比如StackOverflow的这个问题:

<meta name="og:type" content="website" />
<meta name="og:image" content="http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon@2.png?v=fde65a5a78c6"/>
<meta name="og:title" content="How can I check classes that ends with?" />
<meta name="og:description" content="I have some elements such as:
    &amp;lt;div class=&quot;button 17-facebook-dashboard-check&quot;&amp;gt;Elem1&amp;lt;div&amp;gt;
    &amp;lt;div class=&quot;button 18-google-dashboard-check&quot;&amp;gt;Elem2&amp;lt;div&amp;gt;
    &amp;lt;div class=&quot;button " />
<meta name="og:url" content="https://stackoverflow.com/questions/19001883/how-can-i-check-classes-that-ends-with"/>
Run Code Online (Sandbox Code Playgroud)

我想在每条推文上捕获每个共享资源的信息.所以我觉得我会,每个鸣叫(这对我来说是一个盒子)做一个Ajax请求的客户端,下载HTML和解析它,检索og:title,og:description,og:typeog:image.

这是最好的方法吗?什么是在Javascript/Jquery中解析这些数据?

ris*_*isk 12

这些og:属性是Open Graph Protocol属性,有很多方法可以获得这些数据:你应该检查Open Graph Protocol解析器的代码,这对你来说非常有用,而且这个PHP和jQuery Facebook链接解析器.

您还可以查看有关PHP解析和此Opengraph PHP解析器的StackOverflow问题, 并使用ajax调用动态使用它们.

最后,这个关于JQuery和纯JavaScript解析的StackOverflow问题非常有趣,可以真正帮助你.

希望你能找到你需要的东西!;)


1km*_*ies 8

免责声明:OpenGraph.io 是我开发和支持的商业产品。

正如您提到的,通常没有 OG 标签可供使用。您可能会遇到各种各样的情况(例如编码、滥用 HTML 标签等)。如果你想处理边缘情况,我推荐http://www.opengraph.io/

它的主要好处之一是,如果 OpenGraph 标签不存在,它将从页面上的内容推断出标题或描述(如果您最终需要的话)等信息。

要获取有关站点使用的信息(链接应进行 URL 编码):

$.ajax('http://opengraph.io/api/1.0/site/http%3A%2F%2Fwww.washingtontimes.com%2F')
  .done(function(data){
    console.log(data);
  });
Run Code Online (Sandbox Code Playgroud)

这将返回类似以下内容:

{
  "hybridGraph": {
    "title": "Washington Times - Politics, Breaking News, US and World News",
    "description": "The Washington Times delivers breaking news and commentary on the issues that affect the future of our nation.",
    "image": "http://twt-assets.washtimes.com/v4/images/logo-twt.4b20fb5d7b29.svg",
    "url": "http://www.washingtontimes.com/",
    "type": "site",
    "site_name": "Washington Times "
  },
  "openGraph": {...},
  "htmlInferred": {...},
  "requestInfo": {...}
}
Run Code Online (Sandbox Code Playgroud)