仅使用jQuery从URL获取元标记

7

现在有许多脚本可以像Facebook一样从url获取数据,但它们都只能与jQuery和PHP结合使用。是否可能仅通过jQuery获取url?

我在这里找到了如何获取页面元标记的方法:

$('meta[name=description]').attr("content");
$("meta[property=og:title]").attr("content", document.title);

但正确地将此查询插入 jQuery.get() 中以获取文本值,应该怎么做?
$.get('http://www.imdb.com/title/tt1375666/', function(data) {
  $('meta[name=adescription]').attr("content");
});

如果最流行的网站使用OpenGraph,那么我是否应该考虑使用jQuery.getJSON()?

请求不会存在跨域问题吗? - Terminal
尝试使用这个工具,Buzzstream是一个产品。http://tools.buzzstream.com/metaDataService?url=http://www.imdb.com/title/tt1375666/ - anomepani
4个回答

18
似乎由于跨源策略,这似乎是不可能的。
当然可以通过客户端和服务器端的组合更改来实现。相反,我一直在使用此API在项目中作为一个简单的REST API,以获取url的开放图数据。 GET https://opengraph.io/api/1.0/site/<URL encoded site URL> https://opengraph.io/ 对我来说,它已经成为了一个仅客户端JavaScript的解决方案。
[注:我与此产品或其创建者没有关系。我是通过在线研究找到并在项目中使用它的。]

1
我刚刚更新了帖子来解释 - 没有关系,只是一个用户。 - Rebecca
1
谢谢,非常感谢! - Martijn Pieters

6

过滤器运行良好!

您可以进行尝试。

$.get('http://www.guardian.co.uk/culture/2012/jun/21/jimmy-carr-apologises-error-tax', function(data) {
    $(data).filter('meta[name=adescription]').attr("content");
});   

6

使用CORS Anywhere是可行的:

$.get("https://cors-anywhere.herokuapp.com/http://www.imdb.com/title/tt1375666/", function(data) {
    var meta = $(data).filter('meta[name="apple-itunes-app"]').attr("content");
    console.log(meta)
});

因为它是IMDB上的一个实际的元标签,所以使用apple-itunes-app


4

使用从URL检索到的HTML数据

$.get('http://www.guardian.co.uk/culture/2012/jun/21/jimmy-carr-apologises-error-tax', 
function(data) {
   $(data).find('meta[name=adescription]').attr("content");
});

1
谢谢,但它返回整个页面,而且没有在其中找到元标记。 - khex

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