Who is on top of human race? “the self declared god, the puppeteer”

Good day People. Actually, I was searching for help with my hacked phone and then I flip on a such freedomful of expressions, queries and thoughts. (not so sure of the word “FREEDOMFUL” if it exists, though I know all of you here are that smart). I felt a comfort feeling on me while I am on this page randomly scanning on questions, a place of such so naive like environment. I know I am safe here! So now, can someone please share any thoughts about my question.

¿Usar Puppeteer para seguir las redirecciones?

Desde hace tiempo necesito una herramienta o funcionalidad que dada una URL inicial me devuelva la última URL del conjunto de redirecciones.

En primera instancia lo había intentado con PHP, pero no funcionaba con las redirecciones JavaScript, así que me recomendaron usar un browser headless.

Me leí la documentación de PhantomJS, lo instalé y lo probé. Resulta que, según comentario de muchos y de pruebas mías, no funcionaba muy bien con las redirecciones así que ahora estoy probando Google Chrome sin cabeza, haciendo uso de Puppeteer.

Mi código actual es el siguiente:

const argv = require('minimist')(process.argv.slice(2)); var url = argv.url; const puppeteer = require('puppeteer'); (async () => {     const browser = await puppeteer.launch({args: ['--disable-setuid-sandbox', '--no-sandbox']});      const page = await browser.newPage();      await page.goto(url);      await page.waitForNavigation({waitUntil: 'load'});      console.log(page.url());      browser.close(); })(); 

Necesito ayuda con lo siguiente:

  • Parece que mi script espera indefinidamente la carga de la página, me gustaría limitarlo a cierto tiempo.

  • ¿Saben si existe una función que determine si la URL que se le está enviando es correcta? (Para evitar que salga un error al enviarle una URL incorrecta).

  • ¿Qué otras mejoras le harían?

Как вставить текстовое сообщение в тег с помошью puppeteer но без page.evaluate()

У меня есть следующий код.

puppeteer

const chrome = require('chrome-aws-lambda'); const puppeteer = require('puppeteer-core'); export default async (req, res)  => {     const browser = await puppeteer.launch({         args: chrome.args,         executablePath: await chrome.executablePath,         headless: chrome.headless,     });     let page = await browser.newPage();     await page.goto('https://index-2d7a4.firebaseapp.com', {waitUntil: 'networkidle0'} );     await page.content();         await browser.close();     res.end('test') }; 

Мне надо получить элемент по тегу и вставить туда текст. Это делается без особых проблем с page.evaluate

 await page.waitFor('varan-input');         await page.evaluate(async (content) => {         let input = document.querySelector('varan-input');         input.innerText = content         return content     },content); 

Но в коде выше я не могу использовать этот метод, почему то он не срабатывает. Я не могу на локальном компьютере проверить почему точно.

Как можно взять тег и вставить в него текст без этого метода ?

В интернете нашёл такой пример

   await page.focus('varan-input')    await page.keyboard.type('China') 

Но он почему то не работает, я что то упускаю.