Потоки 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(); |
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(); }) })(); |
Спасибо. А если брать что-то более сложное, к примеру, где идут переходы по нескольким страницам с выполнением некоторых действий. Есть какой-то универсальный метод?
|
хз, у всех задачи разные, и прям такое из коробки трудно представить, либо за все надо платить (https://a-parser.com/wiki/parsers/) и т.д. ;)
|
aetest, вы же не думаете, что какой-то сервис позволит вам безнаказанно в несколько десятков вкладок парсить их сайт?
|
Цитата:
Дополню к теме. Возможно, кто-то захочет за определенную плату сделать аналогичную схему в другом готовом скрипте (~70 строк), отпишите тогда в личные сообщения. |
Часовой пояс GMT +3, время: 23:57. |