Я пытаюсь получить доступ к полному динамически отображаемому DOM для моего документа Google.
Я создал облачную функцию Google, в которой использовал Puppeteer. Он дает мне правильно отформатированный вывод (динамически отображается, поскольку он предоставляет приложению браузер env), но он обращается к документу publi c (без входа в систему), поэтому просто предоставляет теги / свойства html для некоторых списков меню (и не все).
Теперь мне нужно передать кредиты / разрешить Puppeteer пропустить авторизацию для доступа к входу в систему до c. Пожалуйста, помогите мне в этом.
Код кукловода:
exports.getDOM = (req, res) => {
const puppeteer = require('puppeteer');
const url = "https://docs.google.com/document/d/doc_id/edit";
let image;
async function main() {
const browser = await puppeteer.launch({args: [
'--disable-web-security', '--no-sandbox',
],
headless: true,
//args: ['--no-sandbox', '--disable-setuid-sandbox'],
});
const page = await browser.newPage();
await page.goto(url, { waitUntil: "networkidle2" });
console.log('Clicking on google login...');
await page.click('.button--withChrome.button--large');
await page.mainFrame().waitForSelector('#identifierId');
console.log('Typing email...');
await page.type('#identifierId', 'user@gmail.com');
await page.mainFrame().waitForSelector('#identifierNext');
console.log('Clicking next button...');
await page.click('#identifierNext');
await page.waitFor(3000);
image = await page.content();
console.log('Closing browser...');
await browser.close();
}
main()
.then(url => {
if (req.method === 'OPTIONS') {
// Send response to OPTIONS requests
res.set('Access-Control-Allow-Methods', 'GET');
res.setHeader("content-type", "text/html");
res.set('Access-Control-Allow-Headers', 'Content-Type');
res.set('Access-Control-Allow-Origin', 'https://docs.google.com');
res.set('Access-Control-Allow-Credentials', 'true');
res.status(200).send(image);
}
return res;
})
.catch(err => {
console.error(err);
res.status(500).send("An Error occured" + err);
})
};
Как только я передаю учетные данные, я получаю сообщение об ошибке:
Доступ к XMLHttpRequest в 'https://play.google.com/log?format=json&hasfast=true&authuser=0 'от источника' https://docs.google.com 'была заблокирована политикой CORS: Ответ на предпечатный запрос не проходит проверку контроля доступа: значение' Access-Control- Заголовок Allow-Origin 'в ответе не должен быть подстановочным знаком' * ', когда режим учетных данных запроса -' include '. Режим учетных данных запросов, инициируемых XMLHttpRequest, контролируется атрибутом withCredentials. 4046832785-client_js_prod_kix_core. js: 264 POST https://play.google.com/log?format=json&hasfast=true&authuser=0 net :: ERR_FAILED