【问题标题】:Get data from a url to put on website从 url 获取数据以放在网站上
【发布时间】:2013-10-28 12:49:55
【问题描述】:

有没有办法使用 jQuery 或 Javascript 将来自不同 Url 的信息超链接,例如 Youtube 视频的观看量到我的网站?

我试过了:

<script>
$(document).ready(function(){
    $('#response').load('http://www.youtube.com/watch?v=lrC2alc_ekol .watch-view-count');
});
</script>

HTML:

<div id="response"></div>

【问题讨论】:

标签: javascript jquery


【解决方案1】:

是的,即您可以使用 jQuery Load,一旦您加载了外部页面,就可以使用特定信息的选择器提取您想要的内容。

jQuery load external site page

$('#myEl').load('remotePageUrl #remotepageIDselector');

其中 myEl 是您页面中的元素,remotePageUrl 是外部站点,remotepageIDselector 是包含您想要的信息的元素的 id,您可以使用任何选择器。

更新: @user2768038,我得走了,但是下面的代码 sn-p 应该可以工作,发生的是你正在做一个跨域调用,前面的答案适用于你自己的域,但是下面的代码应该可以工作:

$.getJSON('http://anyorigin.com/get?url=youtube.com/watch?v=lrC2alc_eko&callback=?', function(data){

    var valueToFind;
    $.each($(data.contents), function(i, el) {

        // if we have the value scape ffrom the cicle
        if(valueToFind && typeof valueToFind !== undefined) {
            // alert the requested value
            alert(valueToFind);
            return false;
        }

        // search for the element in the current dom section
        valueToFind = $(el).find('.watch-view-count').html();

    });
});

但这确实是: 1-昂贵的你正在对一个页面进行完整的请求, 2- 昂贵的你多次遍历完整的 DOM 树。 3- 不安全,因为外部网站所有者可以随时更改代码。

此外,我的解决方案还远未达到最佳状态,我会在晚些时候更新帖子,但这至少在 Firefox 和跨浏览器中应该可以在本地工作,一旦你将代码发布到服务器。

【讨论】:

  • 如何找到特定信息的选择器?
  • @GuillaumePoussel 这个问题实际上是说 Get data from a url to put on website - not specific youtube.
  • @GuillaumePoussel youtube 只是一个例子,如果开发者想从另一个没有 api 的网站提取信息。
  • 是的,但是以这种方式从外部网站提取数据通常被认为是一种不好的做法。您增加了目标网站的带宽使用...
  • @GuillaumePoussel 不会这样说(这是一种不好的做法,即使对于作为开发人员的您,当远程站点更改其 html 结构时,您的代码也会中断),但问题是关于某事,我只是发布了许多替代品。这与最佳实践无关。
【解决方案2】:

是的,这被称为应用程序编程接口或简称 API。如果您正在寻找 YouTube API,您可以在这里找到它:https://developers.google.com/youtube

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-28
    • 2018-10-26
    • 2013-10-18
    相关资源
    最近更新 更多