AWSlambda中向jsdom加载外部资源的解决方法是什么?
创始人
2024-09-26 11:31:32
0

在AWS Lambda中使用jsdom加载外部资源需要使用一些特殊的技巧。下面是一种可行的方法:

  1. 首先,使用npm安装所需的jsdom和request库:
npm install jsdom request
  1. 在Lambda函数中引入这些库:
const jsdom = require('jsdom');
const { JSDOM } = jsdom;
const request = require('request');
  1. 接下来,创建一个Promise,以便等待加载完成后继续处理:
const loadUrl = (url) => {
  return new Promise((resolve, reject) => {
    request(url, (err, res, body) => {
      if (err) {
        reject(err);
      } else {
        resolve(body);
      }
    });
  });
}
  1. 然后,使用JSDOM创建一个虚拟window对象,并将外部资源添加到其中:
exports.handler = async (event, context, callback) => {
  const url = 'https://example.com';
  const html = await loadUrl(url);
  const dom = new JSDOM(html, {
    resources: 'usable',
    runScripts: 'dangerously',
    pretendToBeVisual: true,
    beforeParse(window) {
      const script = window.document.createElement('script');
      script.type = 'text/javascript';
      script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js';
      window.document.head.appendChild(script);
    },
    onload: function() {
      console.log('Finished loading external resources');
    }
  });
  
  // Do something with the loaded DOM here
  
  callback(null, 'Done');
}

在这种情况下,我们将jQuery添加到了虚拟的window对象中,以便后续操作可以使用它来操作DOM。通过设置'beforeParse”选项,我们可以在构建DOM之前向文档中添加脚本。

当jsdom加载完成外部资源时,它将触发'onload”回调。在这个例子中,我们只是简单地输出一条日志信息。

完成后,你可以在'Do something with the loaded DOM here”块中添加任何需要处理的代码。在代码执行完成后,使用'callback”函数结束Lambda函数。

相关内容

热门资讯

6分钟辅助!hhpoker是真... 6分钟辅助!hhpoker是真的假的,hhpoker真的有透视吗,演示教程(真是有挂)1、每一步都需...
第七分钟辅助!we poker... 第七分钟辅助!we poker插件,we poker免费辅助器,手筋教程(有挂方式)暗藏猫腻,小编详...
七分钟辅助!aa poker辅... 七分钟辅助!aa poker辅助包,pokemmo脚本辅助器下载,讲义教程(有挂秘籍)1、pokem...
第四分钟辅助!wepoker辅... 第四分钟辅助!wepoker辅助器安装包定制,aapoker透视脚本,大纲教程(有挂总结)所有人都在...
第四分钟辅助!wpk透视辅助靠... 第四分钟辅助!wpk透视辅助靠谱吗,wepoker透视苹果系统,诀窍教程(有挂猫腻);运wepoke...
七分钟辅助!aapoker透视... 七分钟辅助!aapoker透视脚本入口,wejoker开挂,学习教程(有挂教程)1、打开软件启动之后...
第四分钟辅助!淘宝买wepok... 第四分钟辅助!淘宝买wepoker透视有用吗,wpk俱乐部怎么作弊,积累教程(有挂规律)1、下载好淘...
6分钟辅助!we-poker软... 6分钟辅助!we-poker软件,购买的wpk辅助在哪里下载,积累教程(有挂技巧)购买的wpk辅助在...
第2分钟辅助!如何下载wepo... 第2分钟辅助!如何下载wepoker安装包,newpoker怎么安装脚本,教程书教程(今日头条)1、...
4分钟辅助!wepoker钻石... 4分钟辅助!wepoker钻石怎么看底牌,wepoker辅助器有哪些功能,法门教程(有挂详细)该软件...