【发布时间】:2022-11-04 05:29:08
【问题描述】:
我尝试使用 js 加载功能,但由于外部站点不允许 CORS 请求,我的原始 GET 请求被阻止。
<div id="test"></div>
<script>
$(document).ready(function () {
$("#test").load("https://mywebsite.com");
});
</script>
所以看来我唯一的方法是使用 iframe?!有没有办法只用 iframe 抓取特定的 div?我不想显示整个网站。
编辑:由于我使用的是 Django,我能够在视图中使用 python 抓取网站,然后在 html 模板中推送抓取和清理的代码 sn-p。尽管如此,要回答我的问题->只要您尝试访问的网站阻止了内容,就没有正确的方法。
【问题讨论】:
-
这回答了你的问题了吗? Show div from another website
-
不,iframe 将加载给定 URL 处的所有内容(这是
load()所做的,它只是在将响应添加到 DOM 之前过滤响应)。如果您绝对必须这样做,那么您最好通过向您的服务器发出 AJAX 请求来代理请求,然后向第三方发出请求,接收响应,过滤您需要的 HTML,然后将其返回给您. -
@angel.bonev 这不是一个好的骗子。评分最高的答案建议使用
load(),由于CORS,它在这里不起作用,并且接受的答案建议访问iframe内容,它在这里也不起作用,因为它是跨域来源,因此浏览器中的安全策略将拒绝访问。
标签: javascript html web iframe