首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JQuery从另一个网站获取HTML :可能吗?合法的?

使用JQuery从另一个网站获取HTML :可能吗?合法的?
EN

Stack Overflow用户
提问于 2011-12-14 08:01:53
回答 5查看 26.5K关注 0票数 9

我试图从一个不属于同一领域的网页中获取HTML代码。html文本被解析&总结一个食谱(食谱名称,主要成分,否)。在该页面上找到HTML代码。

然后,用户可以单击链接&转到域外的网页,查看菜谱。

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

有什么方法可以从国内域以外的域获取HTML文本/代码吗?

使用Javascript & JQuery,其思想是通过让用户为每个菜谱执行请求并在客户端解析HTML来限制服务器请求和存储的数量。这就停止了服务器端的瓶颈&也意味着我不必通过服务器&删除过时的食谱摘要。

我对任何编程语言或API或其他任何的解决方案/建议开放

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-12-14 08:49:56

使用任何AJAX库都无法完成您想要做的事情。浏览器的跨域策略将不允许您这样做。

但是您可以使用php (或任何其他服务器端语言)和AJAX的组合来实现这一点。创建如下php脚本:

代码语言:javascript
复制
<?php
    $url=$_POST['url'];
    if($url!="")
        echo file_get_contents($url);
?>

让我们说脚本的名字是fetch.php。现在,您可以从您的jQuery代码中抛出一个AJAX调用到这个fetch.php,它将为您获取fetch.php代码。

票数 9
EN

Stack Overflow用户

发布于 2011-12-14 08:04:19

不,这将不适用于客户端JavaScript。由于安全原因,浏览器会阻止它。您需要对本地服务器端脚本(例如,PHP)进行ajax调用,然后获取内容(例如,通过cURL )并返回所需的HTML。

票数 3
EN

Stack Overflow用户

发布于 2011-12-14 08:13:11

为了在您已经得到的答案中添加一些内容,我可以告诉您,html并不是用来作为“像服务一样”传输数据的方式。为此,XMLJSON通过SOAPREST公开。

在您的场景中,考虑到技术和法律方面,我能想到的最佳方法是使用iframe显示外部内容,并引用iframe内容的来源,包括您已经在做的外部链接。

您仍然可以尝试服务器端方法来获取远程html,但是,这并不是一种干净的方法,当然也不是一种良好的实践,也可能是不合法的。

如果内容的作者希望它在其站点之外可重用,他可以通过服务或RSS / Atom提要提供未格式化的内容来表达这一意图。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8501127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档