【问题标题】:How to load a certain div of an external webpage on another webpage that is on a different domain如何在不同域的另一个网页上加载外部网页的某个 div
【发布时间】:2011-12-06 02:53:19
【问题描述】:

如何将网页的某个 div 加载到位于不同域的另一个网页上。

我试过这个:

<div id="m"></div>
<script>$('#m').load('http://something.com #divname');</script>

但是当要加载的页面在另一个域时它不起作用

【问题讨论】:

    标签: php javascript jquery web-scraping


    【解决方案1】:

    This mod for jQuery 允许您这样做。 Check it out!它使用 YQL 来允许跨域请求。

    一旦您收到请求,它就会显示为 JSON,您可以通过 ajax 解析出来。这是我使用它的一种方式:

    $.ajax({
        url: 'http://something.com',
        type: 'GET',
        success: function(res) {
            var loadIt = $j(res.responseText).find('#divname').html();
            $('#m').html(loadIt);
        }
    });
    

    但我认为您也可以简单地使用 .load 进行操作,如该链接所示。

    【讨论】:

    • 所以基本上通过添加该插件即时可以使用我发布的代码来实现目标?还是我需要另外修改
    • 试一试!就像那个链接上的例子:$('#container').load('http://google.com'); // SERIOUSLY!
    • 它不起作用,我在页面中添加了 jquery.xdomainajax.js 然后尝试使用我发布的代码,无法加载外部页面。
    • 我没有很好地回答你的其他问题。您还必须从 json 中解析它。你看到请求了吗?您应该看到它附加到通过 yahoo 进行的查询,并且响应是来自其他站点的所有 html 的一个长 JSON 字符串。然后你可以抓取任何你想要的 div 并将它们拉到你的页面中。我更新了我的答案,试图让你更清楚。
    • 要建议 YQL,在 JS 中这样做的好方法
    【解决方案2】:

    您需要在服务器端使用一种称为网络抓取的技术。

    几乎所有服务器端编程语言都有一个库来执行此操作。如果您熟悉 JavaScript,则可以使用 node.js。一旦你拥有div,你需要抓取并可用,你可以使用 Ajax 将它提供给客户端,这也可以使用 node.js 轻松完成。

    更多内容请关注this article.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-30
      • 2013-08-11
      • 2012-12-07
      • 1970-01-01
      相关资源
      最近更新 更多