1

我想从其他网站获取 div 中的数据。我怎样才能使用 JavaScript 做到这一点?

4

2 回答 2

8

由于跨域限制,您无法使用 AJAX 直接访问 html。

但是,您可以使用Yahoo YQL来选择您想要的页面部分,并在jsonp数据中返回该 html。

示例返回 stackoverflow 主页上的问题列表

var url='http://query.yahooapis.com/v1/public/yql?q=select * from html where url=\'http://stackoverflow.com/\' and xpath=\'//div[@id="question-mini-list"]//h3//a\'&format=json&callback=?';


$.getJSON( url, function(data){
    $.each(data.query.results.a, function(){       
        $('body').append('<div><a href="http://stackoverflow.com'+this.href +'">'+this.content+'</a></div>')          
     })
})

演示:http: //jsfiddle.net/NTUx5/

YQL 文档:http: //developer.yahoo.com/yql/guide/index.html

编辑:这不再起作用了。

于 2013-01-26T15:49:37.000 回答
-1

您将不得不使用 JSONP 技术,正如上面的 jungalist 建议的那样;或让您的 AJAX 方法与使用 cURL 的本地 PHP 脚本对话:

jQuery:

$('#result').load('path/to/script.php');

PHP:

$ch = curl_init("http://example.com");
curl_exec($ch);
curl_close($ch);
于 2013-01-26T14:32:40.660 回答