Раскрытие силы «Кукловода»: открытие двойных страниц и не только!

Готовы ли вы окунуться в захватывающий мир Puppeteer? Если вы хотите открывать двойные страницы или выполнять другие сложные действия с помощью этого мощного инструмента очистки веб-страниц и автоматизации браузера, вы попали по адресу! В этой статье блога мы рассмотрим различные методы достижения этой цели, дополненные разговорными объяснениями и примерами кода. Итак, начнём!

Метод 1: использование target.createCDPSession()

const puppeteer = require('puppeteer');
(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://www.example.com');
  const target = await browser.waitForTarget(
    target => target.url().includes('example.com')
  );
  const client = await target.createCDPSession();
  await client.send('Page.setLifecycleEventsEnabled', { enabled: true });
  await client.send('Page.navigate', { url: 'https://www.anotherexample.com' });
})();

Метод 2: использование browser.newPage()

const puppeteer = require('puppeteer');
(async () => {
  const browser = await puppeteer.launch();
  const page1 = await browser.newPage();
  await page1.goto('https://www.example.com');

  const page2 = await browser.newPage();
  await page2.goto('https://www.anotherexample.com');
})();

Метод 3: использование Promise.all()

const puppeteer = require('puppeteer');
(async () => {
  const browser = await puppeteer.launch();
  const [page1, page2] = await Promise.all([
    browser.newPage(),
    browser.newPage()
  ]);
  await page1.goto('https://www.example.com');
  await page2.goto('https://www.anotherexample.com');
})();

Метод 4: использование browser.pages()

const puppeteer = require('puppeteer');
(async () => {
  const browser = await puppeteer.launch();
  const [page1, page2] = await browser.pages();
  await page1.goto('https://www.example.com');
  await page2.goto('https://www.anotherexample.com');
})();

Метод 5: использование browser.newContext()

const puppeteer = require('puppeteer');
(async () => {
  const browser = await puppeteer.launch();
  const context = await browser.createIncognitoBrowserContext();
  const [page1, page2] = await Promise.all([
    context.newPage(),
    context.newPage()
  ]);
  await page1.goto('https://www.example.com');
  await page2.goto('https://www.anotherexample.com');
  await browser.close();
})();

Вот и все! Мы рассмотрели несколько способов открытия двойных страниц с помощью Puppeteer. Предпочитаете ли вы создать новую страницу с помощью browser.newPage(), использовать Promise.all()или даже использовать browser.newContext(), эти методы помогут вам достичь цели — открыть несколько страницы одновременно.

Помните, Puppeteer — это универсальный инструмент, который выходит далеко за рамки простого открытия двойных страниц. Благодаря его обширным возможностям вы можете автоматизировать веб-задачи, собирать данные и выполнять различные действия на веб-сайтах. Итак, зачем останавливаться здесь? Продолжайте исследовать и раскрыть весь потенциал Puppeteer!