[英]'MessageChannel is undefined' triggered on pages with reCaptcha v2
我目前正在尝试抓取一些实施了 recaptcha 的网站,但是每当我加载页面的源代码时,我都会收到此错误: (node:15536) UnhandledPromiseRejectionWarning: ReferenceError: MessageChannel is not defined
。
我试图在这里实施修复: https : //github.com/jsdom/jsdom/issues/2448#issuecomment-536242756 ,但它仍然抛出错误。
这是我的代码:
const jsdom = require('jsdom');
const request = require('request');
const { JSDOM } = jsdom;
const url = 'https://www.google.com/recaptcha/api2/demo';
function getPage() {
return new Promise(function(resolve, reject) {
request.get(url, function(error, response, body) {
if (error) {
reject(error);
}
else {
resolve(body);
}
}
});
}
(async() => {
const dom = new JSDOM(await getPage(), {
url,
contentType: 'text/html',
runScripts: 'dangerously',
resources: 'usable',
pretendToBeVisual: true,
beforeParse(window) {
window.MessageChannel = require('worker_threads').MessageChannel;
}
});
})();
提前致谢,
互联
MessageChannel 在 iframe 上下文中不可用。
beforeParse
函数不会在帧中运行: https : //github.com/jsdom/jsdom/issues/2920
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.