Files
2026-07-13 13:23:39 +08:00

36 lines
1.1 KiB
JavaScript

import { Actor } from 'apify';
import playwright from 'playwright';
import { Dataset, PlaywrightCrawler } from '@crawlee/playwright';
// timeouts nowadays, hard to say why
process.exit(404);
const mainOptions = {
exit: Actor.isAtHome(),
storage:
process.env.STORAGE_IMPLEMENTATION === 'LOCAL'
? new (await import('@apify/storage-local')).ApifyStorageLocal()
: undefined,
};
await Actor.main(async () => {
const crawler = new PlaywrightCrawler({
proxyConfiguration: await Actor.createProxyConfiguration(),
launchContext: {
launcher: playwright.firefox,
experimentalContainers: true,
},
preNavigationHooks: [
(_ctx, goToOptions) => {
goToOptions.waitUntil = 'networkidle';
},
],
async requestHandler({ page }) {
const content = await page.content();
await Dataset.pushData({ ip: content.match(/"clientIp":\s*"(.*)"/)?.[1] });
},
});
await crawler.run(['https://api.apify.com/v2/browser-info?1', 'https://api.apify.com/v2/browser-info?2']);
}, mainOptions);