如何使用jQuery从其他网站抓取内容?

时间:2012-02-22 14:58:04

标签: javascript php jquery web-scraping

我正在用PHP进行一个NEWS站点项目,对于这个项目,我想使用jQuery / JavaScript从其他NEWS站点获取内容。 jQuery中是否有任何功能可以从其他域名中删除内容?

而且我也不想使用庞大的服务器CPU,因为它是一个大学服务器。使用jQuery来删除内容是否使用了巨大的CPU?

在Stack Overflow中我读到了jQuery.get()函数,是否可以使用此函数从其他站点抓取内容?

4 个答案:

答案 0 :(得分:7)

使用Cross-Domain-Ajax JQuery Plugin你可以这样做:

$.ajax({
    url: 'http://news.bbc.co.uk',
    type: 'GET',
    success: function(res) {
        var headline = $(res.responseText).find('a.tsh').text();
        alert(headline);
    }
});

他们劫持ajax方法使用YQL来抓取html并将其作为JSON返回,然后将其用作字符串来抓取数据。查看Jquery Cross-domain Ajax Guide了解更多信息。

答案 1 :(得分:3)

你做不到。 The Same Origin Policy阻止了这一点。为此,您需要在使用XMLHTTP的服务器上执行此操作。

答案 2 :(得分:0)

我建议您使用PHP中的curl模块访问新闻网站的RSS订阅源以收集您想要嵌入的新闻。

设置cron进程以定期将RSS源下载到本地存储,并将其转换为可用于站点的格式。这将有助于在收集新闻时保持服务器上的负载,而不是每次访问页面时都是如此。

答案 3 :(得分:0)

你可以在PHP而不是jquery中使用CURL进行数据抓取你可以在PHP中看到使用CURL进行数据抓取的博客: http://www.codefire.org/blogs/item/data-scraping-using-curl-in-php.html