1

I'm trying to take a screenshot of page https://przegladarka-ekw.ms.gov.pl/eukw_prz/KsiegiWieczyste/wyszukiwanieKW but I only receive message that my request was rejected.

I'm using code as below

const puppeteer = require('puppeteer');         // Require Puppeteer module 
const url = "https://przegladarka-ekw.ms.gov.pl/eukw_prz/KsiegiWieczyste/wyszukiwanieKW";           // Set website you want to screenshot
const Screenshot = async () => {                // Define Screenshot function
   const browser = await puppeteer.launch({headless: false, slowMo: 250});    // Launch a "browser"
   const page = await browser.newPage();        // Open a new page
   await page.goto(url);                        // Go to the website

   await page.screenshot({                      // Screenshot the website using defined options
    path: "./screenshot.png",                   // Save the screenshot in current directory
    fullPage: true                              // take a fullpage screenshot
  });
  await page.close();                           // Close the website
  await browser.close();                        // Close the browser
}
Screenshot();                                   // Call the Screenshot function

In normal browser page is blank and after seconds refresh and then display normally so I'm trying to was for all redirections but it doesn't work

const puppeteer = require('puppeteer');         // Require Puppeteer module 
const url = "https://przegladarka-ekw.ms.gov.pl/eukw_prz/KsiegiWieczyste/wyszukiwanieKW";           // Set website you want to screenshot
const Screenshot = async () => {                // Define Screenshot function
   const browser = await puppeteer.launch({headless: false, slowMo: 250});    // Launch a "browser"
   const page = await browser.newPage();        // Open a new page
   await page.goto(url);                        // Go to the website

   page.on('console', msg => console.log('PAGE LOG:', msg.text()));
   await page.evaluate(() => console.log(`url is ${location.href}`));

   
    await page.waitForSelector('#numerKsiegiWieczystej', { visible: true, timeout: 0 });
   await page.screenshot({                      // Screenshot the website using defined options
    path: "./screenshot.png",                   // Save the screenshot in current directory
    fullPage: true                              // take a fullpage screenshot
  });
  await page.close();                           // Close the website
  await browser.close();                        // Close the browser
}
Screenshot();                                   // Call the Screenshot function

Rafał
  • 13
  • 2
  • Possibly related, due to `bobcmn`: [1](https://stackoverflow.com/questions/54538792/enable-javascript-httpclient), [2](https://github.com/cmalita/api-mfinante), [3](https://github.com/owid/covid-19-data/issues/2265) – ggorlen Apr 01 '23 at 21:41

1 Answers1

1

The page has a bot detection script window["bobcmn"] so add these to your package.json :

"puppeteer-extra": "^3.3.6",
"puppeteer-extra-plugin-stealth": "^2.11.2",

then the code to take a screenshot will be :


const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
puppeteer.use(StealthPlugin());

let browser;
(async () => {
const browser = await puppeteer.launch({headless: true});
const page = await browser.newPage();
let url = 'https://przegladarka-ekw.ms.gov.pl/eukw_prz/KsiegiWieczyste/wyszukiwanieKW';

async function screenshot(url) {

    await page.goto(url,{ waitUntil: 'networkidle2', timeout:60000});
    await page.waitForSelector('div.content');
    await page.screenshot({path : "./screenshot.png", fullPage: true});

    await page.close();
    await browser.close();
}

await screenshot(url);

})().catch(err => console.error(err)).finally(() => browser ?. close());

idchi
  • 761
  • 1
  • 5
  • 15