gpt4 book ai didi

javascript - 如何在 IFRAME 中筛选跨来源的抓取?

转载 作者:行者123 更新时间:2023-11-29 22:01:29 25 4
gpt4 key购买 nike

我有一个商业网络应用程序,需要从其他各种网站获取信息。对于大多数站点,用户只需指示服务器提取数据(使用 .NET 的 HttpRequest 或 Selenium)。

但对于一些不友好的、大量使用 Javascript 的网站,我们的用户必须手动访问该网站,导航到正确的位置,然后复制并粘贴到我们的应用程序中。

除了小书签,我们的页面是否有任何方式显示加载了源网站的 IFRAME,允许用户在框架内导航,然后捕获 IFRAME 的主体?

由于 IFRAME 中的站点不在同一个域中(甚至不相近),我似乎无法解决浏览器跨站点脚本限制。我试过使用 HTML5 的“沙盒”功能,但它似乎只允许通过其他方式进行通信(通过“allow-same-origin”),从 IFRAME 到主机站点,这不是对我没用。此外,如果有问题的网站试图将其框架加载到顶部上下文,它也不起作用。

我理想中寻找的是一种解决方案,该解决方案允许将浏览器配置为隐式信任我的网站(它是一个 Intranet 应用程序)并允许它访问任何框架的内容。那至少会让我进入球场。如果我能让 iframe 将“顶部”上下文重新定义为它自己的框架,那么托管站点就可以在该框架内正常运行,那就加分了。

最佳答案

我通过许多屏幕抓取项目(抓取 JS 重页面)找到的最佳方法是创建一个用户脚本或 Greasemonkey 脚本,在他们自己的 IP 空间中设置一些虚拟机(用于保护)并提供它们从远程程序访问的站点列表:

  1. 按设定的时间间隔检查队列
  2. 使用 Greasemonkey 等请求页面
  3. 捕获内容并发送到远程程序进行处理

您不能使用 iframe 方法,并且您会在试图走那条路时撞到墙上,我所描述的方法已用于许多大型抓取项目。

关于javascript - 如何在 IFRAME 中筛选跨来源的抓取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23499006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com