项目文件夹

文件
2026-07-13 13:23:39 +08:00

38 行
1.2 KiB
TypeScript

import type { Dictionary } from '@crawlee/cheerio';
import { CheerioCrawler } from '@crawlee/cheerio';
import { Browser, ImpitHttpClient } from '@crawlee/impit-client';
import { Actor } from 'apify';
if (process.env.STORAGE_IMPLEMENTATION === 'LOCAL') {
// @ts-ignore
await Actor.init({ storage: new (await import('@apify/storage-local')).ApifyStorageLocal() });
} else {
await Actor.init();
}
const crawler = new CheerioCrawler({
async requestHandler(context) {
const { body: text } = await context.sendRequest({
url: 'https://api.apify.com/v2/browser-info',
});
const { body: json } = await context.sendRequest<Dictionary>({
url: 'https://api.apify.com/v2/browser-info',
responseType: 'json',
});
await context.pushData({
body: context.body,
title: context.$('title').text(),
userAgent: json.headers['user-agent'],
clientIpTextResponse: text,
clientIpJsonResponse: json,
});
},
httpClient: new ImpitHttpClient({ browser: Browser.Firefox }),
});
await crawler.run(['https://crawlee.dev']);
await Actor.exit({ exit: Actor.isAtHome() });