使用JQuery从其他网站获取HTML:可能吗?法律?
我试图从不在同一个域中的网页获取HTML代码。 HTML文本被解析&总结了HTML代码来自的页面上找到的配方(配方名称,主要成分,步骤编号)。使用JQuery从其他网站获取HTML:可能吗?法律?
用户可以点击链接&转到域外的该网页查看配方。
我知道相同原产地政策,但这是否适用于从国内域外的网页获取HTML代码?我想它与获取XML完全一样,所以这是合法的&不是吗?
有没有一种方法可以从我的国内域以外的域中获取HTML文本/代码?
使用JavaScript & JQuery的,这个想法是限制服务器的量通过使用户进行请求的每个配方&解析在客户端的HTML请求&存储。这停止了服务器端瓶颈&也意味着我不必去通过服务器&删除旧的过时配方摘要。
我在任何编程语言或API或等
你想要做的事情不能用任何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。
这个anyorigin.com呢。是否会工作?客户端使用安全吗(他们不会收到病毒/恶意软件)? – 2011-12-14 08:07:07
适用同一来源。试试这个代码,你会面临安全错误
$.get("other web page site", {}, function(content){
$("#receipe").html(content)
}, "html")
顺便说一句,你就更有可能违反版权法,所以要谨慎;-)
要添加一些你已经得到的答案,我可以告诉你,html
并不意味着被用作传输数据“像服务”的方式。为此,通过SOAP
或REST
公开了XML
或JSON
。
在你的情况,我能想到的,同时考虑技术和法律方面的问题,最好的办法,是使用iframe
显示外部内容,并援引了iframe内容的来源,包括像一个外部链接你已经在做。
你仍然可以尝试服务器端的方法来获取远程html,但再次,而不是一个干净的方式来做到这一点,当然不是一个好的做法,可能不合法。
如果内容的作者希望它可以在其网站外重复使用,他可以通过服务或RSS
/Atom
订阅源提供未格式化的内容来表达此意图。
[是](http://stackoverflow.com/questions/8336129/extracting-the-content-of-an-element-from-an-external-page/8336276#8336276) – Purag 2011-12-14 08:17:12
@Purag受到同源政策就像其他任何事情一样。 – ArtOfWarfare 2015-03-18 01:41:55