🍪 Snímek obrazovky nebo seškrábání webových stránek za přihlášením pomocí JavaScriptu (v Node.js)

Představme si, že chcete programově vytvořit screenshot svého dashboardu dev.to. V části 1 jsme se naučili, jak dělat screenshoty. Ale zatím jsme dělali jen screenshoty veřejných stránek. Panel dev.to je dostupný pouze tehdy, pokud jste přihlášeni. Žádný problém! To je vlastně snadný úkol, protože můžete nastavit cookies s loutkářem. Jediné, co musíte udělat, je otevřít Dev Tools a zkopírovat remember_user_token cookie. Se správným nastavením domény (připravil jsem je v příkladu) nyní můžete přistupovat na webovou stránku, jako byste byli přihlášeni. Ve skutečnosti je vaše loutková relace přihlášena. To je možné u většiny stránek, protože přihlášení obvykle závisí na cookie, kterou stačí zkopírovat. Zkus to sám!

// npm i puppeteer
const puppeteer = require('puppeteer');

const cookie = {
  name: 'remember_user_token',
  value: 'YOUR_COOKIE_VALUE', // replace this!
  domain: 'dev.to',
  url: 'https://www.dev.to/',
  path: '/',
  httpOnly: true,
  secure: true,
};

// we're using async/await - so we need an async function, that we can run
const run = async () => {
  // open the browser and prepare a page
  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  // set the cookie with your user information to appear logged in
  await page.setCookie(cookie);

  await page.goto('https://dev.to/dashboard');
  await page.screenshot({
    path: 'my_dev_to_dashboard.png',
    fullPage: false, // set to true to get the whole page
  });

  // close the browser
  await browser.close();
};

// run the async function
run();

Zvažte prosím, zda mě sledujete, pokud vás zajímá, co dalšího můžete s loutkářstvím dělat a pokud nechcete promeškat žádný z mých připravovaných článků v této sérii.

Děkujeme za přečtení!