Как извлечь ссылку на видео или фото?

Каким образом можно вынуть ссылку на файл с помощью Node.js (желательно Puppetter или Cheerio, но не обязательно)?

Файл виден во вкладке "Network" консоли, он просто загружается, но в самом DOM никак не фигурирует.


Ответы (1 шт):

Автор решения: nörbörnën

Тут пример как словить картинки в обработчике запросов page.on('request') и в обработчике ответов page.on('response')

const puppeteer = require('puppeteer');

(async () => {

  const browser = await puppeteer.launch({
    headless: true,
    ignoreHTTPSErrors: true
  });

  const page = await browser.newPage();

  await page.setRequestInterception(true);

  page.on('request', (request) => {
    if (request.url().includes('cs.pikabu.ru')) {
      console.log(`request url: ${request.url()}`);
    }
    request.continue();
  });

  page.on('response', (response) => {
    if (response.headers()['content-type']?.startsWith('image')) {
      console.log(`response images url: ${response.url()}`);
    }
  });

  await page.goto('https://pikabu.ru', {
    timeout: 0,
    waitUntil: ['networkidle0', 'load']
  });

  await page.close();

  await browser.close();

})();

Результат работы:

request url: https://cs.pikabu.ru/images/subs-empty.svg
request url: https://cs.pikabu.ru/apps/ub/4.33.0/desktop/sprite.svg
response images url: https://cs.pikabu.ru/page/interview/pechenka-dev.png
response images url: https://cs.pikabu.ru/images/logos/telegram-blue.png
request url: https://cs.pikabu.ru/apps/ub/4.33.0/desktop/sprite_96dpi.png
request url: https://cs.pikabu.ru/apps/ub/4.0.0/desktop/style/roboto-regular.woff2
request url: https://cs.pikabu.ru/apps/ub/4.0.0/desktop/style/roboto-500.woff2
request url: https://cs.pikabu.ru/apps/ub/4.0.0/desktop/style/roboto-italic.woff2
response images url: https://cs.pikabu.ru/images/logos/telegram-dark-red.png
response images url: https://cs.pikabu.ru/images/logos/viber.png
response images url: https://cs.pikabu.ru/images/jobseeker/vacancy1.png
response images url: https://cs.pikabu.ru/images/subs-empty.svg
response images url: https://cs.pikabu.ru/apps/ub/4.33.0/desktop/sprite.svg
response images url: https://cs14.pikabu.ru/post_img/2021/05/07/9/1620400076179239264.png
response images url: https://cs14.pikabu.ru/images/community/2642/1613293324284311041.png
response images url: https://cs14.pikabu.ru/images/community/1713/1620245096288090229.png
→ Ссылка