import { log, Dataset, PuppeteerCrawler, Configuration, utils, RequestQueue } from 'crawlee';
import { router } from './routes.js';
import puppeteerExtra from 'puppeteer-extra';
import stealthPlugin from 'puppeteer-extra-plugin-stealth';
import chromium from '@sparticuz/chromium';
// Get the global configuration
const config = Configuration.getGlobalConfig();
config.set('purgeOnStart', false);
config.set('maxUsedCpuRatio', 0.9);
config.set('availableMemoryRatio', 0.7);
config.set('memoryMbytes', 30720);
config.set('chromeExecutablePath', await chromium.executablePath());
config.set('defaultBrowserPath', await chromium.executablePath());
log.setOptions({ prefix: allDBKeys[0]});
log.options.logger.setOptions({
skipTime: false,
});
puppeteerExtra.use(stealthPlugin());
// Open a named request queue with a persistStateKey option
const requestQueue = await RequestQueue.open(allDBKeys[0]);
const crawler = new PuppeteerCrawler({
launchContext: {
launcher: puppeteerExtra,
launchOptions: {
executablePath: await chromium.executablePath();
// this resolves to headless: "new",
headless: chromium.headless,
ignoreHTTPSErrors: true,
args: ['--disable-features=InterestFeedContentSuggestions', '--no-default-browser-check', '--mute-audio', '--disable-features=Translate', '--disable-client-side-phishing-detection', '--disable-background-timer-throttling', '--disable-backgrounding-occluded-windows', '--disable-features=CalculateNativeWinOcclusion', '--disable-renderer-backgrounding', '--disable-features=AutoExpandDetailsElement', '--use-fake-device-for-media-stream', '--use-fake-ui-for-media-stream', '--deny-permission-prompts', '--disable-notifications', '--disable-background-networking', '--block-new-web-contents', 'site-per-process'],
},
useIncognitoPages: true,
},
useSessionPool: true}}, config);
import { log, Dataset, PuppeteerCrawler, Configuration, utils, RequestQueue } from 'crawlee';
import { router } from './routes.js';
import puppeteerExtra from 'puppeteer-extra';
import stealthPlugin from 'puppeteer-extra-plugin-stealth';
import chromium from '@sparticuz/chromium';
// Get the global configuration
const config = Configuration.getGlobalConfig();
config.set('purgeOnStart', false);
config.set('maxUsedCpuRatio', 0.9);
config.set('availableMemoryRatio', 0.7);
config.set('memoryMbytes', 30720);
config.set('chromeExecutablePath', await chromium.executablePath());
config.set('defaultBrowserPath', await chromium.executablePath());
log.setOptions({ prefix: allDBKeys[0]});
log.options.logger.setOptions({
skipTime: false,
});
puppeteerExtra.use(stealthPlugin());
// Open a named request queue with a persistStateKey option
const requestQueue = await RequestQueue.open(allDBKeys[0]);
const crawler = new PuppeteerCrawler({
launchContext: {
launcher: puppeteerExtra,
launchOptions: {
executablePath: await chromium.executablePath();
// this resolves to headless: "new",
headless: chromium.headless,
ignoreHTTPSErrors: true,
args: ['--disable-features=InterestFeedContentSuggestions', '--no-default-browser-check', '--mute-audio', '--disable-features=Translate', '--disable-client-side-phishing-detection', '--disable-background-timer-throttling', '--disable-backgrounding-occluded-windows', '--disable-features=CalculateNativeWinOcclusion', '--disable-renderer-backgrounding', '--disable-features=AutoExpandDetailsElement', '--use-fake-device-for-media-stream', '--use-fake-ui-for-media-stream', '--deny-permission-prompts', '--disable-notifications', '--disable-background-networking', '--block-new-web-contents', 'site-per-process'],
},
useIncognitoPages: true,
},
useSessionPool: true}}, config);