Gran guía de aprendizaje de la clase del navegador Titiritero (Tutorial 8)

Puppeteer es una biblioteca js de nodo de código abierto y se utiliza como herramienta de automatización web y raspado web. Necesita un conocimiento básico de Javascript y la estructura DOM de HTML para comenzar a trabajar con Puppeteer. Esta serie de tutoriales de Puppeteer se distribuye en los siguientes segmentos que le proporcionarán toda la experiencia necesaria para comenzar a trabajar con Puppeteer. 

Tutorial de titiritero

Tutorial de Tosca # 1: Descripción general del titiritero

Tutorial de Tosca # 2: Variables de entorno del titiritero

Tutorial de Tosca # 3: Descripción general de la automatización de pruebas de titiritero y raspado web de titiritero

Tutorial de Tosca # 4: Instalar Titiritero

Tutorial de Tosca # 5: Proyecto de muestra de titiritero

Tutorial de Tosca # 6: Pruebas de automatización de titiriteros

Tutorial de Tosca # 7: Clase de titiritero

Tutorial de Tosca # 8: Clase de navegador titiritero

Tosca Tutorial # 9: Clase de página de titiritero

En este tutorial de "Clase de navegador de titiriteros", tendremos una comprensión más profunda de las clases mencionadas a continuación, que consisten en los espacios de nombres importantes, eventos y otros métodos exhaustivos que se necesitan para trabajar con las técnicas de raspado web de Titiritero.  

Titiritero Clase BrowserFetcher

Puppeteer BrowserFetcher Class se utiliza para descargar y administrar las diferentes versiones del navegador. La clase BrowserFetcher opera en una cadena de revisión que especifica la versión del navegador Chrome. El número de revisión se puede obtener de esta página. En el caso de Firefox, descarga el navegador todas las noches según el número de versión.

El siguiente ejemplo muestra cómo descargar y abre el navegador Chrome utilizando la clase BrowserFetcher.

const browserFetcher = titiritero.createBrowserFetcher(); const revInfo = await browserFetcher.download('766890'); const browserChrome= esperar a titiritero.launch({ejecutablePath: revInfo.executablePath})

No es posible trabajar simultáneamente con otra instancia de la clase BrowserFetcher. Los métodos de uso frecuente de la clase BrowserFetcher se explican en las siguientes secciones.

Titiritero Clase BrowserFetcher - Métodos:

Los siguientes métodos están disponibles en la clase explorador de titiriteros,

browserFetcher.canDownload (revisión) - Con la ayuda del número de revisión del navegador, este método verifica la disponibilidad del navegador especificado como parte de la solicitud de encabezado. El método devuelve el valor booleano (verdadero o falso) según la disponibilidad.

const boolVar = browserFetcher.canDownload ('766890');

browserFetcher.download (revisión [, progressCallback]) - Este método descarga el navegador Chrome usando el argumento del número de revisión. En este caso, progressCallback es un argumento opcional que llama a la función con dos argumentos: bytes descargados y bytes totales. Este método devuelve la información de revisión como un objeto de promesa.

const revInfo = browserFetcher.download ('766890');

browserFetcher.host () - Devuelve el nombre de host, que se utiliza para descargar el navegador.

const hostName = browserFetcher.host ();

browserFetcher.localRevisions () - Devuelve la lista de todas las revisiones que están disponibles en el sistema local.

const revList = browserFetcher.localRevisions ();

browserFetcher.platform () - Devuelve el nombre de la plataforma del host, que será cualquiera de los mac, Linux, win32 o win64.

const platformName = browserFetcher.platform ();

browserFetcher.product () - Devuelve el nombre del navegador que será Chrome o Firefox

const productName = browserFetcher.product ();

browserFetcher.remove (revisión) - Este método se utiliza para eliminar la revisión especificada para el producto / navegador actual. Devuelve el objeto de promesa, que se resuelve una vez finalizado el proceso.

const revInfo = browserFetcher.remove ('766890');

browserFetcher.revisionInfo (revisión) - Devolverá un objeto con información de revisión que incluye revisión, ruta de carpeta, ruta ejecutable, url, local y producto.

const revInfo = browserFetcher.revisionInfo ('766890');

Referencia: Haga Clic en esta página para obtener más información sobre los métodos de la clase BrowserFetcher.

Titiritero Clase de navegador

La clase Puppeteer Browser se crea cuando el titiritero inicia o conecta el navegador usando titiritero lanzamiento or titiritero.conectar métodos.

El siguiente ejemplo muestra cómo crear la clase y la página del navegador utilizando la referencia del navegador.

const titiritero = require('titiritero'); (async () => { const browserChrome = esperar a titiritero.launch(); const pageChrome = esperar a browserChrome.newPage(); esperar a pageChrome.goto('https://www.google.com'); esperar a browserChrome.close( ); })();

Los eventos y métodos de uso frecuente de la clase Browser se explican en la siguiente sección.

Titiritero Clase de navegador - Eventos:

Los siguientes eventos están disponibles en la clase de navegador,

  • browser.on ('desconectado') - Este evento se activa cuando el navegador se cierra / falla o navegador.desconectar se llama al método.
  • browser.on ('targetchanged') - Este evento se activa cuando la URL del objetivo ha cambiado.
  • browser.on ('targetcreated') - Este evento se activa cuando la nueva página se abre en una nueva pestaña o ventana mediante el método navegador.nuevapágina or ventana abierta.
  • browser.on ('targetdestroyed') - Este evento se activa cuando se destruye el objetivo, es decir, se cierra la página.

Titiritero Clase de navegador - Métodos:

Los siguientes métodos están disponibles en la clase de navegador,

  • browser.browserContexts () - Devuelve la lista de todos los contextos del navegador. Para un navegador recién lanzado, este método devolverá la única instancia de BrowserContext.
  • browser.close () - Este método se utiliza para cerrar todas las páginas del navegador Chrome abiertas. 

aguardar browser.close ();

  • browser.createIncognitoBrowserContext () - Crea / devuelve el contexto del navegador de incógnito, que nunca compartirá las cookies o el caché con ningún otro contexto del navegador. En el siguiente ejemplo, la página web (google) se abrirá en modo incógnito.

(asíncrono () => {
  const chromeBrowser = espera puppeteer.launch ();
  // Crea un nuevo contexto de navegador de incógnito.
  const context = aguardar chromeBrowser.createIncognitoBrowserContext ();
  const pageChrome = espera context.newPage ();
  aguardar pageChrome.goto ('https://www.google.com');
}) ();

  • browser.defaultBrowserContext () - Devuelve el contexto del navegador predeterminado que no se puede destruir ni cerrar.
  • browser.disconnect () - Desconectará el navegador del titiritero. Pero el navegador seguirá funcionando en este caso.
  • browser.isConnected () - Este método comprueba si el navegador está conectado o no. Devolverá valores booleanos basados ​​en la verificación.

const boolFlag = aguardar browser.isConnected ();

  • browser.newPage () - Este método creará una nueva página y devolverá la instancia de la página.

const page = aguardar browser.newPage ();

  • browser.pages () - Este método devuelve la lista de todas las páginas que se encuentran actualmente en estado abierto.

const pageList = aguardar browser.pages ();

  • browser.process () - Este método devuelve el proceso del navegador creado. Si el navegador se crea usando navegador.conectar método, y devolverá un valor nulo.
  • browser.target () - Este método devuelve el objetivo asociado con el navegador.

const target = aguardar browser.target ();

  • browser.targets () - Devuelve la lista de todos los objetivos activos dentro del navegador.

const targetList = aguardar browser.targets ();

  • browser.userAgent () - Devuelve el objeto de promesa sobre el agente original del navegador.
  • browser.version () - Devuelve la versión del navegador en formato de 'HeadlessChrome / xx.x.xxxx.x 'para Chrome sin cabeza y' Chrome / xx.x.xxxx.x 'para cromo sin cabeza. El formato puede cambiar en una versión futura.
  • browser.waitForTarget (predicado [, opciones]) - Buscará en todos los contextos del navegador y esperará al objetivo.

espere páginaChrome.evaluate(() => window.open('https://techiescience.com/'));
const newWindowTarget = await browser.waitForTarget(target => target.url() === 'https://techiescience.com/');

  • browser.wsEndpoint () - Devuelve la URL del socket web del navegador.

const wsUrl = aguardar browser.wsEndPoint ();

Referencia: Haga Clic en esta página para obtener más información sobre los eventos y métodos de la clase del navegador.

Titiritero Clase BrowserContext

La clase BrowserContext ayuda a operar múltiples instancias de navegador. Después de lanzar una instancia de navegador, de forma predeterminada, se usa un solo BrowserContext. los navegador Chrome.nueva pagina() El método crea una página en el objeto de clase BrowserContext predeterminado. Si una página web invoca otra página, la nueva página debe pertenecer al contexto del navegador de la página principal. Aquí, la nueva página se puede crear usando las ventana.open () método. 

En el siguiente ejemplo, Puppeteer tiene la capacidad de crear un contexto de navegador en modo 'incógnito'. El contexto del navegador 'incógnito' no escribe ningún dato en el almacenamiento.

// Creación del contexto del navegador de incógnito const contextIncognito = await browserChrome.createIncognitoBrowserContext(); // Creación de una nueva página a través del contexto del navegador. const pageChrome = await contextIncognito.newPage(); espera pageChrome.goto('https://www.google.com'); //cerrar el contexto después de usarlo esperar contextIncognito.close();

Los eventos y métodos de uso frecuente de la clase BrowserContext se explican en la siguiente sección.

Titiritero Clase BrowserContext - Eventos:

Los siguientes eventos están disponibles en la clase de contexto del navegador,

  • browserContext.on (targetchanged) - Este evento se activa cuando la URL del destino dentro del contexto del navegador ha cambiado.
  • browserContext.on (targetcreated) - Este evento se activa después de la creación dentro del contexto del navegador. Los métodos ventana abierta browserContext.nuevapágina son responsables de este evento.
  • browserContext.on ('targetdestroyed') - Este evento se activa cuando el objetivo se destruye dentro del contexto del navegador.

Titiritero Clase BrowserContext - Métodos:

Los siguientes métodos están disponibles en la clase browsercontext,

  • browserContext.browser () - Este método devuelve el objeto del navegador que está disponible dentro del contexto del navegador.
  • browserContext.clearPermissionOverrides () - Este método elimina todas las anulaciones de permisos del contexto del navegador. El siguiente ejemplo muestra cómo utilizar este método: 

const browserContext = browser.defaultBrowserContext ();
browserContext.overridePermissions ('https://www.google.com', ['clipboard-read']);
browserContext.clearPermissionOverrides ();

  • browserContext.close () - Este método se utiliza para cerrar o destruir el contexto del navegador. Se cerrarán todos los navegadores disponibles dentro del contexto del navegador.

browserContext.close ();

  • browserContext.isIncognito () - Este método se utiliza para comprobar si el navegador se ha creado en modo 'incógnito' o no. Devuelve un valor booleano (verdadero: modo incógnito o falso: modo no incógnito) según el modo del navegador. De forma predeterminada, cualquier navegador se invoca en modo "no incógnito".

const boolIsIncognito = browserContext.isIncognito ();

  • browserContext.newPage () - Este método se utiliza para crear una nueva página en el mismo contexto del navegador.

browserContext.newPage ();

  • browserContext.overridePermissions (origen, permiso) - Este método se utiliza para otorgar el permiso especificado al origen, es decir, la URL de destino. Los diferentes permisos que están disponibles para otorgar son:
  • 'geolocalización'
  • 'midi-sysex' (midi exclusivo del sistema)
  • 'midi'
  • 'empujar'
  • 'cámara'
  • 'notificaciones'
  • 'micrófono'
  • 'sensor de luz ambiental'
  • 'acelerómetro'
  • 'sincronización en segundo plano'
  • 'giroscopio'
  • 'eventos de accesibilidad'
  • 'portapapeles-leído'
  • 'magnetómetro'
  • 'portapapeles-escribir'
  • 'manejador de pagos'

El siguiente ejemplo muestra cómo otorgar permiso:

const browserContext = browser.defaultBrowserContext ();
aguardar browserContext.overridePermissions ('https://www.google.com', ['geolocalización']);

  • browserContext.pages () - Este método devuelve la lista de todas las páginas abiertas disponibles en el contexto del navegador. Las páginas no visibles no se incluirán aquí.

const openPageList = browserContext.pages ();

  • browserContext.targets () - Este método devuelve la lista de todos los destinos activos disponibles en el contexto del navegador. Cualquier página no visible no se incluirá aquí.

const activeTargetList = browserContext.targets ();

  • browserContext.waitForTarget (predicado [, opciones]) - Este método se utiliza para esperar a que haya aparecido un objetivo y haya devuelto el objeto objetivo. El argumento 'predicado' es básicamente una llamada a función para cada uno de los objetivos. Además, opcionalmente, podemos pasar algunos valores de configuración como el tiempo de espera como segundo argumento.
espera pageChrome.evaluate(() => window.open('https://www.google.com/')); const newWindowTarget = await browserContext.waitForTarget(target => target.url() === 'https://www.google.com/');

Referencia: Haga Clic en esta página para leer más sobre métodos y eventos de la clase BrowserContext.

Conclusión:

En este tutorial de "Clase de navegador Puppeteer", hemos explicado la clase BrowserFetcher, la clase BrowserContext y la clase Browser que incluye los espacios de nombres importantes (si los hay), los eventos (si los hay) y los métodos que se utilizan con frecuencia en las técnicas de raspado web Puppeteer con ejemplos. En el próximo artículo, explicaremos la clase Page, Frame y Dialog.

Deja un comentario