Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Потоки node js (https://javascript.ru/forum/node-js-io-js/80652-potoki-node-js.html)

aetest 09.07.2020 07:24

Потоки node js
 
Доброго времени. Я использую puttepeer для автоматизации действий в браузере. Ниже предоставлен код, который циклично сохраняет изображение сайта. Предположим, что на полную загрузку страницы уходит 2000 мс. Но мне нужно, чтобы я видел новое изображение каждые 500 мс. Отсюда вопрос: как мне пустить это всё в несколько потоков?

const puppeteer = require('puppeteer');
const cl = 0

async function getPic() {
  const browser = await puppeteer.launch({headless: false});
  const page = await browser.newPage();
  while (cl < 1) {
  await page.goto('https://google.com');
  await page.setViewport({width: 1000, height: 500})
  await page.screenshot({path: 'google.png'});
  }
}

getPic();

SuperZen 09.07.2020 10:55

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.setViewport({ width: 640, height: 480, deviceScaleFactor: 1 });

  let shotNum = 0
  let interval = setInterval(/*async*/() => {
    /*await*/ page.screenshot({ path: `example.png${shotNum++}` })
  }, 500);

  page.goto('https://example.com', {
    //https://pptr.dev/#?product=Puppeteer&version=v5.0.0&show=api-pagewaitfornavigationoptions
    waitUntil: "domcontentloaded" //"networkidle2" //"networkidle0" //"load"
  }).then(async () => {
    clearInterval(interval)
    await browser.close();
  })
})();

aetest 09.07.2020 11:20

Спасибо. А если брать что-то более сложное, к примеру, где идут переходы по нескольким страницам с выполнением некоторых действий. Есть какой-то универсальный метод?

SuperZen 09.07.2020 11:50

хз, у всех задачи разные, и прям такое из коробки трудно представить, либо за все надо платить (https://a-parser.com/wiki/parsers/) и т.д. ;)

Nexus 09.07.2020 13:02

aetest, вы же не думаете, что какой-то сервис позволит вам безнаказанно в несколько десятков вкладок парсить их сайт?

aetest 10.07.2020 07:10

Цитата:

Сообщение от Nexus (Сообщение 526912)
aetest, вы же не думаете, что какой-то сервис позволит вам безнаказанно в несколько десятков вкладок парсить их сайт?

Уже подумал. Более того, он это позволяет. Да и мне не несколько десятков нужно, а буквально пару/тройку.

Дополню к теме. Возможно, кто-то захочет за определенную плату сделать аналогичную схему в другом готовом скрипте (~70 строк), отпишите тогда в личные сообщения.


Часовой пояс GMT +3, время: 00:26.