gpt4 book ai didi

javascript - 使用 node & express 从我自己的服务器提供任何外部网页

转载 作者:行者123 更新时间:2023-11-28 00:48:15 25 4
gpt4 key购买 nike

我想允许用户操纵另一个网页的 DOM(就此而言,假设是 www.google.com)。

显然,我无意实际更改原始网页上的任何内容,而只是为了允许视觉更改,就像它们在该网站上一样。

我从使用 iframe 开始,但是没有办法为跨域 iframe 操作 DOM。因此,我考虑从我自己的服务器和我自己的域提供该网页,这样就不会有任何跨域问题。

这是我在服务器上得到的:

app.get('/showsite', (req, res) => {
const url = 'https://www.google.com';
request(url, (err, resp, html) => {
if (!err) {
res.send(html);
}
})}

我在这里所做的,实际上是使用 GET 请求接收网页,然后将响应发回 html 给客户端。

确实向客户端显示了网页,但是页面全乱了 - 相对路径、样式、编码等错误。

正确实现应该是什么?

最佳答案

只要您能够引入并托管构成该网站的所有 Assets ,就可以抓取第三方网站、更改和重新显示其内容。在您的情况下,google.com 登录页面有许多图像需要检索,然后从您自己域中的服务器提供。

  1. 您需要使用类似 jsdom 的工具抓取和遍历目标网站的所有子 Assets 。
  2. 使用类似 jsdom 的工具要下载所有子资源,您需要将所有这些资源复制并保存在服务器本地。您保存它们的目录路径必须与原始路径完全匹配。
  3. 获得所有子资源(css、图像、脚本、字体)后,您可以操作原始 html 并提供新内容。

关于javascript - 使用 node & express 从我自己的服务器提供任何外部网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49097528/

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