Я пытаюсь сделать скриншот страницы https://przegladarka-ekw.ms.gov.pl/eukw_prz/KsiegiWieczyste/wyszukiwanieKW но получаю только сообщение, что мой запрос отклонен.
Я использую код, как показано ниже
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
В обычном браузере страница пуста и через несколько секунд обновляется, а затем отображается нормально, поэтому я пытаюсь использовать все перенаправления, но это не работает.
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.info('PAGE LOG:', msg.text()));
await page.evaluate(() => console.info(`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
На странице есть скрипт обнаружения ботов window["bobcmn"]
, поэтому добавьте его в свой package.json:
"puppeteer-extra": "^3.3.6",
"puppeteer-extra-plugin-stealth": "^2.11.2",
тогда код для снимка экрана будет таким:
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());
Возможно связано, из-за
bobcmn
: 1 , 2 , 3