使用JQuery从其他网站获取HTML:可能吗?法律?

问题描述:

我试图从不在同一个域中的网页获取HTML代码。 HTML文本被解析&总结了HTML代码来自的页面上找到的配方(配方名称,主要成分,步骤编号)。使用JQuery从其他网站获取HTML:可能吗?法律?

用户可以点击链接&转到域外的该网页查看配方。

我知道相同原产地政策,但这是否适用于从国内域外的网页获取HTML代码?我想它与获取XML完全一样,所以这是合法的&不是吗?

有没有一种方法可以从我的国内域以外的域中获取HTML文本/代码?

使用JavaScript & JQuery的,这个想法是限制服务器的量通过使用户进行请求的每个配方&解析在客户端的HTML请求&存储。这停止了​​服务器端瓶颈&也意味着我不必去通过服务器&删除旧的过时配方摘要。

我在任何编程语言或API或等

+0

[是](http://*.com/questions/8336129/extracting-the-content-of-an-element-from-an-external-page/8336276#8336276) – Purag 2011-12-14 08:17:12

+0

@Purag受到同源政策就像其他任何事情一样。 – ArtOfWarfare 2015-03-18 01:41:55

你想要做的事情不能用任何AJAX库来完成。浏览器的跨域策略不会允许您执行此操作。

但是,您可以使用php(或任何其他服务器端语言)和AJAX的组合来完成此操作。创建一个这样的PHP脚本:

<?php 
    $url=$_POST['url']; 
    if($url!="") 
     echo file_get_contents($url); 
?> 

让我们说这个脚本的名字是fetch.php。 现在,您可以从您的jQuery代码向此fetch.php引发AJAX调用,并且它会为您提取HTML代码。

不,这不会从客户端JavaScript打开,工作方案/建议。浏览器出于安全原因阻止它。您需要对本地服务器端脚本(例如PHP)进行ajax调用,然后才能获取内容(例如,通过cURL)并返回所需的HTML。

+0

这个anyorigin.com呢。是否会工作?客户端使用安全吗(他们不会收到病毒/恶意软件)? – 2011-12-14 08:07:07

适用同一来源。试试这个代码,你会面临安全错误

$.get("other web page site", {}, function(content){ 
    $("#receipe").html(content) 
}, "html") 

顺便说一句,你就更有可能违反版权法,所以要谨慎;-)

我可不是要知道这是否算作纯JavaScript解决方案,但:http://developer.yahoo.com/yql/可以帮助你找到你想要的。

要添加一些你已经得到的答案,我可以告诉你,html并不意味着被用作传输数据“像服务”的方式。为此,通过SOAPREST公开了XMLJSON

在你的情况,我能想到的,同时考虑技术和法律方面的问题,最好的办法,是使用iframe显示外部内容,并援引了iframe内容的来源,包括像一个外部链接你已经在做。

你仍然可以尝试服务器端的方法来获取远程html,但再次,而不是一个干净的方式来做到这一点,当然不是一个好的做法,可能不合法。

如果内容的作者希望它可以在其网站外重复使用,他可以通过服务或RSS/Atom订阅源提供未格式化的内容来表达此意图。