@crawlee/basic 4.0.0-beta.3 → 4.0.0-beta.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -9,6 +9,10 @@
9
9
  <small>A web scraping and browser automation library</small>
10
10
  </h1>
11
11
 
12
+ <p align=center>
13
+ <a href="https://trendshift.io/repositories/5179" target="_blank"><img src="https://trendshift.io/api/badge/repositories/5179" alt="apify%2Fcrawlee | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
14
+ </p>
15
+
12
16
  <p align=center>
13
17
  <a href="https://www.npmjs.com/package/@crawlee/core" rel="nofollow"><img src="https://img.shields.io/npm/v/@crawlee/core.svg" alt="NPM latest version" data-canonical-src="https://img.shields.io/npm/v/@crawlee/core/next.svg" style="max-width: 100%;"></a>
14
18
  <a href="https://www.npmjs.com/package/@crawlee/core" rel="nofollow"><img src="https://img.shields.io/npm/dm/@crawlee/core.svg" alt="Downloads" data-canonical-src="https://img.shields.io/npm/dm/@crawlee/core.svg" style="max-width: 100%;"></a>
@@ -24,7 +28,7 @@ Crawlee is available as the [`crawlee`](https://www.npmjs.com/package/crawlee) N
24
28
 
25
29
  > 👉 **View full documentation, guides and examples on the [Crawlee project website](https://crawlee.dev)** 👈
26
30
 
27
- > Crawlee for Python is open for early adopters. 🐍 [👉 Checkout the source code 👈](https://github.com/apify/crawlee-python).
31
+ > Do you prefer 🐍 Python instead of JavaScript? [👉 Checkout Crawlee for Python 👈](https://github.com/apify/crawlee-python).
28
32
 
29
33
  ## Installation
30
34
 
package/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export * from '@crawlee/core';
2
2
  export * from './internals/basic-crawler.js';
3
- export * from './internals/constants.js';
3
+ export { CheerioRoot, CheerioAPI, Cheerio, Element } from '@crawlee/utils';
4
4
  //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC"}
package/index.js CHANGED
@@ -1,4 +1,3 @@
1
1
  export * from '@crawlee/core';
2
2
  export * from './internals/basic-crawler.js';
3
- export * from './internals/constants.js';
4
3
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC"}
@@ -1,38 +1,14 @@
1
- import type { AddRequestsBatchedOptions, AddRequestsBatchedResult, AutoscaledPoolOptions, BaseHttpClient, CrawlingContext, DatasetExportOptions, EnqueueLinksOptions, EventManager, FinalStatistics, GetUserDataFromRequest, IRequestList, LoadedContext, ProxyInfo, Request, RequestOptions, RestrictedCrawlingContext, RouterHandler, RouterRoutes, Session, SessionPoolOptions, SkippedRequestCallback, Source, StatisticsOptions, StatisticState } from '@crawlee/core';
2
- import { AutoscaledPool, Configuration, Dataset, RequestProvider, SessionPool, Statistics } from '@crawlee/core';
3
- import type { Awaitable, BatchAddRequestsResult, Dictionary, SetStatusMessageOptions } from '@crawlee/types';
1
+ import type { AddRequestsBatchedOptions, AddRequestsBatchedResult, AutoscaledPoolOptions, Configuration, CrawlingContext, DatasetExportOptions, EnqueueLinksOptions, EventManager, FinalStatistics, GetUserDataFromRequest, IRequestList, IRequestManager, ProxyConfiguration, Request, RequestsLike, RouterHandler, RouterRoutes, Session, SessionPoolOptions, SkippedRequestCallback, Source, StatisticsOptions, StatisticState } from '@crawlee/core';
2
+ import { AutoscaledPool, ContextPipeline, Dataset, RequestProvider, SessionPool, Statistics } from '@crawlee/core';
3
+ import type { Awaitable, BaseHttpClient, BatchAddRequestsResult, Dictionary, ProxyInfo, SetStatusMessageOptions, StorageClient } from '@crawlee/types';
4
4
  import { RobotsTxtFile } from '@crawlee/utils';
5
- import type { SetRequired } from 'type-fest';
5
+ import type { ReadonlyDeep, SetRequired } from 'type-fest';
6
6
  import type { Log } from '@apify/log';
7
7
  import { TimeoutError } from '@apify/timeout';
8
- export interface BasicCrawlingContext<UserData extends Dictionary = Dictionary> extends CrawlingContext<BasicCrawler, UserData> {
9
- /**
10
- * This function automatically finds and enqueues links from the current page, adding them to the {@link RequestQueue}
11
- * currently used by the crawler.
12
- *
13
- * Optionally, the function allows you to filter the target links' URLs using an array of globs or regular expressions
14
- * and override settings of the enqueued {@link Request} objects.
15
- *
16
- * Check out the [Crawl a website with relative links](https://crawlee.dev/js/docs/examples/crawl-relative-links) example
17
- * for more details regarding its usage.
18
- *
19
- * **Example usage**
20
- *
21
- * ```ts
22
- * async requestHandler({ enqueueLinks }) {
23
- * await enqueueLinks({
24
- * urls: [...],
25
- * });
26
- * },
27
- * ```
28
- *
29
- * @param [options] All `enqueueLinks()` parameters are passed via an options object.
30
- * @returns Promise that resolves to {@link BatchAddRequestsResult} object.
31
- */
32
- enqueueLinks(options?: SetRequired<EnqueueLinksOptions, 'urls'>): Promise<BatchAddRequestsResult>;
8
+ export interface BasicCrawlingContext<UserData extends Dictionary = Dictionary> extends CrawlingContext<UserData> {
33
9
  }
34
- export type RequestHandler<Context extends CrawlingContext = LoadedContext<BasicCrawlingContext & RestrictedCrawlingContext>> = (inputs: LoadedContext<Context>) => Awaitable<void>;
35
- export type ErrorHandler<Context extends CrawlingContext = LoadedContext<BasicCrawlingContext & RestrictedCrawlingContext>> = (inputs: LoadedContext<Context>, error: Error) => Awaitable<void>;
10
+ export type RequestHandler<Context extends CrawlingContext = CrawlingContext> = (inputs: Context) => Awaitable<void>;
11
+ export type ErrorHandler<Context extends CrawlingContext = CrawlingContext, ExtendedContext extends Context = Context> = (inputs: Context & Partial<ExtendedContext>, error: Error) => Awaitable<void>;
36
12
  export interface StatusMessageCallbackParams<Context extends CrawlingContext = BasicCrawlingContext, Crawler extends BasicCrawler<any> = BasicCrawler<Context>> {
37
13
  state: StatisticState;
38
14
  crawler: Crawler;
@@ -40,7 +16,10 @@ export interface StatusMessageCallbackParams<Context extends CrawlingContext = B
40
16
  message: string;
41
17
  }
42
18
  export type StatusMessageCallback<Context extends CrawlingContext = BasicCrawlingContext, Crawler extends BasicCrawler<any> = BasicCrawler<Context>> = (params: StatusMessageCallbackParams<Context, Crawler>) => Awaitable<void>;
43
- export interface BasicCrawlerOptions<Context extends CrawlingContext = BasicCrawlingContext> {
19
+ export type RequireContextPipeline<DefaultContextType extends CrawlingContext, FinalContextType extends DefaultContextType> = DefaultContextType extends FinalContextType ? {} : {
20
+ contextPipelineBuilder: () => ContextPipeline<CrawlingContext, FinalContextType>;
21
+ };
22
+ export interface BasicCrawlerOptions<Context extends CrawlingContext = CrawlingContext, ContextExtension = Dictionary<never>, ExtendedContext extends Context = Context & ContextExtension> {
44
23
  /**
45
24
  * User-provided function that performs the logic of the crawler. It is called for each URL to crawl.
46
25
  *
@@ -58,7 +37,35 @@ export interface BasicCrawlerOptions<Context extends CrawlingContext = BasicCraw
58
37
  * The exceptions are logged to the request using the
59
38
  * {@link Request.pushErrorMessage|`Request.pushErrorMessage()`} function.
60
39
  */
61
- requestHandler?: RequestHandler<LoadedContext<Context>>;
40
+ requestHandler?: RequestHandler<ExtendedContext>;
41
+ /**
42
+ * Allows the user to extend the crawling context passed to the request handler with custom functionality.
43
+ *
44
+ * **Example usage:**
45
+ *
46
+ * ```javascript
47
+ * import { BasicCrawler } from 'crawlee';
48
+ *
49
+ * // Create a crawler instance
50
+ * const crawler = new BasicCrawler({
51
+ * extendContext(context) => ({
52
+ * async customHelper() {
53
+ * await context.pushData({ url: context.request.url })
54
+ * }
55
+ * }),
56
+ * async requestHandler(context) {
57
+ * await context.customHelper();
58
+ * },
59
+ * });
60
+ * ```
61
+ */
62
+ extendContext?: (context: Context) => Awaitable<ContextExtension>;
63
+ /**
64
+ * *Intended for BasicCrawler subclasses*. Prepares a context pipeline that transforms the initial crawling context into the shape given by the `Context` type parameter.
65
+ *
66
+ * The option is not required if your crawler subclass does not extend the crawling context with custom information or helpers.
67
+ */
68
+ contextPipelineBuilder?: () => ContextPipeline<CrawlingContext, Context>;
62
69
  /**
63
70
  * Static list of URLs to be processed.
64
71
  * If not provided, the crawler will open the default request queue when the {@link BasicCrawler.addRequests|`crawler.addRequests()`} function is called.
@@ -73,6 +80,13 @@ export interface BasicCrawlerOptions<Context extends CrawlingContext = BasicCraw
73
80
  * it is a shortcut for running `crawler.addRequests()` before the `crawler.run()`.
74
81
  */
75
82
  requestQueue?: RequestProvider;
83
+ /**
84
+ * Allows explicitly configuring a request manager. Mutually exclusive with the `requestQueue` and `requestList` options.
85
+ *
86
+ * This enables explicitly configuring the crawler to use `RequestManagerTandem`, for instance.
87
+ * If using this, the type of `BasicCrawler.requestQueue` may not be fully compatible with the `RequestProvider` class.
88
+ */
89
+ requestManager?: IRequestManager;
76
90
  /**
77
91
  * Timeout in which the function passed as {@link BasicCrawlerOptions.requestHandler|`requestHandler`} needs to finish, in seconds.
78
92
  * @default 60
@@ -87,7 +101,7 @@ export interface BasicCrawlerOptions<Context extends CrawlingContext = BasicCraw
87
101
  * Second argument is the `Error` instance that
88
102
  * represents the last error thrown during processing of the request.
89
103
  */
90
- errorHandler?: ErrorHandler<Context>;
104
+ errorHandler?: ErrorHandler<CrawlingContext, ExtendedContext>;
91
105
  /**
92
106
  * A function to handle requests that failed more than {@link BasicCrawlerOptions.maxRequestRetries|`maxRequestRetries`} times.
93
107
  *
@@ -96,7 +110,7 @@ export interface BasicCrawlerOptions<Context extends CrawlingContext = BasicCraw
96
110
  * Second argument is the `Error` instance that
97
111
  * represents the last error thrown during processing of the request.
98
112
  */
99
- failedRequestHandler?: ErrorHandler<Context>;
113
+ failedRequestHandler?: ErrorHandler<CrawlingContext, ExtendedContext>;
100
114
  /**
101
115
  * Specifies the maximum number of retries allowed for a request if its processing fails.
102
116
  * This includes retries due to navigation errors or errors thrown from user-supplied functions
@@ -126,12 +140,18 @@ export interface BasicCrawlerOptions<Context extends CrawlingContext = BasicCraw
126
140
  * > *NOTE:* In cases of parallel crawling, the actual number of pages visited might be slightly higher than this value.
127
141
  */
128
142
  maxRequestsPerCrawl?: number;
143
+ /**
144
+ * Maximum depth of the crawl. If not set, the crawl will continue until all requests are processed.
145
+ * Setting this to `0` will only process the initial requests, skipping all links enqueued by `crawlingContext.enqueueLinks` and `crawlingContext.addRequests`.
146
+ * Passing `1` will process the initial requests and all links enqueued by `crawlingContext.enqueueLinks` and `crawlingContext.addRequests` in the handler for initial requests.
147
+ */
148
+ maxCrawlDepth?: number;
129
149
  /**
130
150
  * Custom options passed to the underlying {@link AutoscaledPool} constructor.
131
151
  * > *NOTE:* The {@link AutoscaledPoolOptions.runTaskFunction|`runTaskFunction`}
132
- * and {@link AutoscaledPoolOptions.isTaskReadyFunction|`isTaskReadyFunction`} options
133
- * are provided by the crawler and cannot be overridden.
134
- * However, we can provide a custom implementation of {@link AutoscaledPoolOptions.isFinishedFunction|`isFinishedFunction`}.
152
+ * option is provided by the crawler and cannot be overridden.
153
+ * However, we can provide custom implementations of {@link AutoscaledPoolOptions.isFinishedFunction|`isFinishedFunction`}
154
+ * and {@link AutoscaledPoolOptions.isTaskReadyFunction|`isTaskReadyFunction`}.
135
155
  */
136
156
  autoscaledPoolOptions?: AutoscaledPoolOptions;
137
157
  /**
@@ -199,11 +219,20 @@ export interface BasicCrawlerOptions<Context extends CrawlingContext = BasicCraw
199
219
  /**
200
220
  * If set to `true`, the crawler will automatically try to fetch the robots.txt file for each domain,
201
221
  * and skip those that are not allowed. This also prevents disallowed URLs to be added via `enqueueLinks`.
222
+ *
223
+ * If an object is provided, it may contain a `userAgent` property to specify which user-agent
224
+ * should be used when checking the robots.txt file. If not provided, the default user-agent `*` will be used.
202
225
  */
203
- respectRobotsTxtFile?: boolean;
226
+ respectRobotsTxtFile?: boolean | {
227
+ userAgent?: string;
228
+ };
204
229
  /**
205
230
  * When a request is skipped for some reason, you can use this callback to act on it.
206
- * This is currently fired only for requests skipped based on robots.txt file.
231
+ * This is currently fired for requests skipped
232
+ * 1. based on robots.txt file,
233
+ * 2. because they don't match enqueueLinks filters,
234
+ * 3. because they are redirected to a URL that doesn't match the enqueueLinks strategy,
235
+ * 4. or because the {@link BasicCrawlerOptions.maxRequestsPerCrawl|`maxRequestsPerCrawl`} limit has been reached
207
236
  */
208
237
  onSkippedRequest?: SkippedRequestCallback;
209
238
  /** @internal */
@@ -223,6 +252,38 @@ export interface BasicCrawlerOptions<Context extends CrawlingContext = BasicCraw
223
252
  * Defaults to a new instance of {@link GotScrapingHttpClient}
224
253
  */
225
254
  httpClient?: BaseHttpClient;
255
+ /**
256
+ * If set, the crawler will be configured for all connections to use
257
+ * the Proxy URLs provided and rotated according to the configuration.
258
+ */
259
+ proxyConfiguration?: ProxyConfiguration;
260
+ /**
261
+ * Custom configuration to use for this crawler.
262
+ * If provided, the crawler will use its own ServiceLocator instance instead of the global one.
263
+ */
264
+ configuration?: Configuration;
265
+ /**
266
+ * Custom storage client to use for this crawler.
267
+ * If provided, the crawler will use its own ServiceLocator instance instead of the global one.
268
+ */
269
+ storageClient?: StorageClient;
270
+ /**
271
+ * Custom event manager to use for this crawler.
272
+ * If provided, the crawler will use its own ServiceLocator instance instead of the global one.
273
+ */
274
+ eventManager?: EventManager;
275
+ /**
276
+ * A unique identifier for the crawler instance. This ID is used to isolate the state returned by
277
+ * {@link BasicCrawler.useState|`crawler.useState()`} from other crawler instances.
278
+ *
279
+ * When multiple crawler instances use `useState()` without an explicit `id`, they will share the same
280
+ * state object for backward compatibility. A warning will be logged in this case.
281
+ *
282
+ * To ensure each crawler has its own isolated state that also persists across script restarts
283
+ * (e.g., during Apify migrations), provide a stable, unique ID for each crawler instance.
284
+ *
285
+ */
286
+ id?: string;
226
287
  }
227
288
  /**
228
289
  * A set of options that you can toggle to enable experimental features in Crawlee.
@@ -303,9 +364,13 @@ export interface CrawlerExperiments {
303
364
  * ```
304
365
  * @category Crawlers
305
366
  */
306
- export declare class BasicCrawler<Context extends CrawlingContext = BasicCrawlingContext> {
307
- readonly config: Configuration;
367
+ export declare class BasicCrawler<Context extends CrawlingContext = CrawlingContext, ContextExtension = Dictionary<never>, ExtendedContext extends Context = Context & ContextExtension> {
308
368
  protected static readonly CRAWLEE_STATE_KEY = "CRAWLEE_STATE";
369
+ /**
370
+ * Tracks crawler instances that accessed shared state without having an explicit id.
371
+ * Used to detect and warn about multiple crawlers sharing the same state.
372
+ */
373
+ private static useStateCrawlerIds;
309
374
  /**
310
375
  * A reference to the underlying {@link Statistics} class that collects and logs run statistics for requests.
311
376
  */
@@ -321,6 +386,10 @@ export declare class BasicCrawler<Context extends CrawlingContext = BasicCrawlin
321
386
  * Only available if used by the crawler.
322
387
  */
323
388
  requestQueue?: RequestProvider;
389
+ /**
390
+ * The main request-handling component of the crawler. It's initialized during the crawler startup.
391
+ */
392
+ protected requestManager?: IRequestManager;
324
393
  /**
325
394
  * A reference to the underlying {@link SessionPool} class that manages the crawler's {@link Session|sessions}.
326
395
  * Only available if used by the crawler.
@@ -334,40 +403,58 @@ export declare class BasicCrawler<Context extends CrawlingContext = BasicCrawlin
334
403
  * or to abort it by calling {@link AutoscaledPool.abort|`autoscaledPool.abort()`}.
335
404
  */
336
405
  autoscaledPool?: AutoscaledPool;
406
+ /**
407
+ * A reference to the underlying {@link ProxyConfiguration} class that manages the crawler's proxies.
408
+ * Only available if used by the crawler.
409
+ */
410
+ proxyConfiguration?: ProxyConfiguration;
337
411
  /**
338
412
  * Default {@link Router} instance that will be used if we don't specify any {@link BasicCrawlerOptions.requestHandler|`requestHandler`}.
339
413
  * See {@link Router.addHandler|`router.addHandler()`} and {@link Router.addDefaultHandler|`router.addDefaultHandler()`}.
340
414
  */
341
- readonly router: RouterHandler<LoadedContext<Context>>;
415
+ readonly router: RouterHandler<Context>;
416
+ private contextPipelineBuilder;
417
+ private _contextPipeline?;
418
+ get contextPipeline(): ContextPipeline<CrawlingContext, ExtendedContext>;
342
419
  running: boolean;
343
420
  hasFinishedBefore: boolean;
344
421
  readonly log: Log;
345
- protected requestHandler: RequestHandler<Context>;
346
- protected errorHandler?: ErrorHandler<Context>;
347
- protected failedRequestHandler?: ErrorHandler<Context>;
422
+ protected requestHandler: RequestHandler<ExtendedContext>;
423
+ protected errorHandler?: ErrorHandler<CrawlingContext, ExtendedContext>;
424
+ protected failedRequestHandler?: ErrorHandler<CrawlingContext, ExtendedContext>;
348
425
  protected requestHandlerTimeoutMillis: number;
349
426
  protected internalTimeoutMillis: number;
350
427
  protected maxRequestRetries: number;
428
+ protected maxCrawlDepth?: number;
351
429
  protected sameDomainDelayMillis: number;
352
430
  protected domainAccessedTime: Map<string, number>;
353
431
  protected maxSessionRotations: number;
432
+ protected maxRequestsPerCrawl?: number;
354
433
  protected handledRequestsCount: number;
355
434
  protected statusMessageLoggingInterval: number;
356
435
  protected statusMessageCallback?: StatusMessageCallback;
357
436
  protected sessionPoolOptions: SessionPoolOptions;
358
437
  protected useSessionPool: boolean;
359
- protected crawlingContexts: Map<string, Context>;
360
438
  protected autoscaledPoolOptions: AutoscaledPoolOptions;
361
- protected events: EventManager;
362
439
  protected httpClient: BaseHttpClient;
363
440
  protected retryOnBlocked: boolean;
364
- protected respectRobotsTxtFile: boolean;
441
+ protected respectRobotsTxtFile: boolean | {
442
+ userAgent?: string;
443
+ };
365
444
  protected onSkippedRequest?: SkippedRequestCallback;
366
445
  private _closeEvents?;
446
+ private shouldLogMaxProcessedRequestsExceeded;
447
+ private shouldLogMaxEnqueuedRequestsExceeded;
367
448
  private experiments;
368
449
  private readonly robotsTxtFileCache;
369
450
  private _experimentWarnings;
451
+ private readonly crawlerId;
452
+ private readonly hasExplicitId;
370
453
  protected static optionsShape: {
454
+ // @ts-ignore optional peer dependency or compatibility with es2022
455
+ contextPipelineBuilder: import("ow").ObjectPredicate<object> & import("ow").BasePredicate<object | undefined>;
456
+ // @ts-ignore optional peer dependency or compatibility with es2022
457
+ extendContext: import("ow").Predicate<Function> & import("ow").BasePredicate<Function | undefined>;
371
458
  // @ts-ignore optional peer dependency or compatibility with es2022
372
459
  requestList: import("ow").ObjectPredicate<object> & import("ow").BasePredicate<object | undefined>;
373
460
  // @ts-ignore optional peer dependency or compatibility with es2022
@@ -388,12 +475,16 @@ export declare class BasicCrawler<Context extends CrawlingContext = BasicCrawlin
388
475
  maxSessionRotations: import("ow").NumberPredicate & import("ow").BasePredicate<number | undefined>;
389
476
  // @ts-ignore optional peer dependency or compatibility with es2022
390
477
  maxRequestsPerCrawl: import("ow").NumberPredicate & import("ow").BasePredicate<number | undefined>;
478
+ // @ts-ignore optional peer dependency or compatibility with es2022
479
+ maxCrawlDepth: import("ow").NumberPredicate & import("ow").BasePredicate<number | undefined>;
391
480
  // @ts-ignore optional peer dependency or compatibility with es2022
392
481
  autoscaledPoolOptions: import("ow").ObjectPredicate<object> & import("ow").BasePredicate<object | undefined>;
393
482
  // @ts-ignore optional peer dependency or compatibility with es2022
394
483
  sessionPoolOptions: import("ow").ObjectPredicate<object> & import("ow").BasePredicate<object | undefined>;
395
484
  // @ts-ignore optional peer dependency or compatibility with es2022
396
485
  useSessionPool: import("ow").BooleanPredicate & import("ow").BasePredicate<boolean | undefined>;
486
+ // @ts-ignore optional peer dependency or compatibility with es2022
487
+ proxyConfiguration: import("ow").ObjectPredicate<object> & import("ow").BasePredicate<object | undefined>;
397
488
  // @ts-ignore optional peer dependency or compatibility with es2022
398
489
  statusMessageLoggingInterval: import("ow").NumberPredicate & import("ow").BasePredicate<number | undefined>;
399
490
  // @ts-ignore optional peer dependency or compatibility with es2022
@@ -401,11 +492,17 @@ export declare class BasicCrawler<Context extends CrawlingContext = BasicCrawlin
401
492
  // @ts-ignore optional peer dependency or compatibility with es2022
402
493
  retryOnBlocked: import("ow").BooleanPredicate & import("ow").BasePredicate<boolean | undefined>;
403
494
  // @ts-ignore optional peer dependency or compatibility with es2022
404
- respectRobotsTxtFile: import("ow").BooleanPredicate & import("ow").BasePredicate<boolean | undefined>;
495
+ respectRobotsTxtFile: import("ow").AnyPredicate<boolean | object>;
405
496
  // @ts-ignore optional peer dependency or compatibility with es2022
406
497
  onSkippedRequest: import("ow").Predicate<Function> & import("ow").BasePredicate<Function | undefined>;
407
498
  // @ts-ignore optional peer dependency or compatibility with es2022
408
499
  httpClient: import("ow").ObjectPredicate<object> & import("ow").BasePredicate<object | undefined>;
500
+ // @ts-ignore optional peer dependency or compatibility with es2022
501
+ configuration: import("ow").ObjectPredicate<object> & import("ow").BasePredicate<object | undefined>;
502
+ // @ts-ignore optional peer dependency or compatibility with es2022
503
+ storageClient: import("ow").ObjectPredicate<object> & import("ow").BasePredicate<object | undefined>;
504
+ // @ts-ignore optional peer dependency or compatibility with es2022
505
+ eventManager: import("ow").ObjectPredicate<object> & import("ow").BasePredicate<object | undefined>;
409
506
  // @ts-ignore optional peer dependency or compatibility with es2022
410
507
  minConcurrency: import("ow").NumberPredicate & import("ow").BasePredicate<number | undefined>;
411
508
  // @ts-ignore optional peer dependency or compatibility with es2022
@@ -420,11 +517,13 @@ export declare class BasicCrawler<Context extends CrawlingContext = BasicCrawlin
420
517
  experiments: import("ow").ObjectPredicate<object> & import("ow").BasePredicate<object | undefined>;
421
518
  // @ts-ignore optional peer dependency or compatibility with es2022
422
519
  statisticsOptions: import("ow").ObjectPredicate<object> & import("ow").BasePredicate<object | undefined>;
520
+ // @ts-ignore optional peer dependency or compatibility with es2022
521
+ id: import("ow").StringPredicate & import("ow").BasePredicate<string | undefined>;
423
522
  };
424
523
  /**
425
524
  * All `BasicCrawler` parameters are passed via an options object.
426
525
  */
427
- constructor(options?: BasicCrawlerOptions<Context>, config?: Configuration);
526
+ constructor(options?: BasicCrawlerOptions<Context, ContextExtension, ExtendedContext> & RequireContextPipeline<CrawlingContext, Context>);
428
527
  /**
429
528
  * Checks if the given error is a proxy error by comparing its message to a list of known proxy error messages.
430
529
  * Used for retrying requests that failed due to proxy errors.
@@ -432,12 +531,6 @@ export declare class BasicCrawler<Context extends CrawlingContext = BasicCrawlin
432
531
  * @param error The error to check.
433
532
  */
434
533
  protected isProxyError(error: Error): boolean;
435
- /**
436
- * Checks whether the given crawling context is getting blocked by anti-bot protection using several heuristics.
437
- * Returns `false` if the request is not blocked, otherwise returns a string with a description of the block reason.
438
- * @param _crawlingContext The crawling context to check.
439
- */
440
- protected isRequestBlocked(_crawlingContext: Context): Promise<string | false>;
441
534
  /**
442
535
  * This method is periodically called by the crawler, every `statusMessageLoggingInterval` seconds.
443
536
  */
@@ -453,15 +546,20 @@ export declare class BasicCrawler<Context extends CrawlingContext = BasicCrawlin
453
546
  * @param [requests] The requests to add.
454
547
  * @param [options] Options for the request queue.
455
548
  */
456
- run(requests?: (string | Request | RequestOptions)[], options?: CrawlerRunOptions): Promise<FinalStatistics>;
549
+ run(requests?: RequestsLike, options?: CrawlerRunOptions): Promise<FinalStatistics>;
457
550
  /**
458
551
  * Gracefully stops the current run of the crawler.
459
552
  *
460
553
  * All the tasks active at the time of calling this method will be allowed to finish.
554
+ *
555
+ * To stop the crawler immediately, use {@link BasicCrawler.teardown|`crawler.teardown()`} instead.
461
556
  */
462
557
  stop(message?: string): void;
463
558
  getRequestQueue(): Promise<RequestProvider>;
464
559
  useState<State extends Dictionary = Dictionary>(defaultValue?: State): Promise<State>;
560
+ protected get pendingRequestCountApproximation(): number;
561
+ protected calculateEnqueuedRequestLimit(explicitLimit?: number): number | undefined;
562
+ protected handleSkippedRequest(options: Parameters<SkippedRequestCallback>[0]): Promise<void>;
465
563
  /**
466
564
  * Adds requests to the queue in batches. By default, it will resolve after the initial batch is added, and continue
467
565
  * adding the rest in background. You can configure the batch size via `batchSize` option and the sleep time in between
@@ -473,7 +571,7 @@ export declare class BasicCrawler<Context extends CrawlingContext = BasicCrawlin
473
571
  * @param requests The requests to add
474
572
  * @param options Options for the request queue
475
573
  */
476
- addRequests(requests: (string | Source)[], options?: CrawlerAddRequestsOptions): Promise<CrawlerAddRequestsResult>;
574
+ addRequests(requests: ReadonlyDeep<RequestsLike>, options?: CrawlerAddRequestsOptions): Promise<CrawlerAddRequestsResult>;
477
575
  /**
478
576
  * Pushes data to the specified {@link Dataset}, or the default crawler {@link Dataset} by calling {@link Dataset.pushData}.
479
577
  */
@@ -491,8 +589,11 @@ export declare class BasicCrawler<Context extends CrawlingContext = BasicCrawlin
491
589
  * Supported formats are currently 'json' and 'csv', and will be inferred from the `path` automatically.
492
590
  */
493
591
  exportData<Data>(path: string, format?: 'json' | 'csv', options?: DatasetExportOptions): Promise<Data[]>;
592
+ /**
593
+ * Initializes the crawler.
594
+ */
494
595
  protected _init(): Promise<void>;
495
- protected _runRequestHandler(crawlingContext: Context): Promise<void>;
596
+ protected runRequestHandler(crawlingContext: CrawlingContext): Promise<void>;
496
597
  /**
497
598
  * Handles blocked request
498
599
  */
@@ -501,31 +602,42 @@ export declare class BasicCrawler<Context extends CrawlingContext = BasicCrawlin
501
602
  protected getRobotsTxtFileForUrl(url: string): Promise<RobotsTxtFile | undefined>;
502
603
  protected _pauseOnMigration(): Promise<void>;
503
604
  /**
504
- * Fetches request from either RequestList or RequestQueue. If request comes from a RequestList
505
- * and RequestQueue is present then enqueues it to the queue first.
605
+ * Initializes the RequestManager based on the configured requestList and requestQueue.
506
606
  */
507
- protected _fetchNextRequest(): Promise<Request<Dictionary> | null | undefined>;
607
+ private initializeRequestManager;
508
608
  /**
509
- * Executed when `errorHandler` finishes or the request is successful.
510
- * Can be used to clean up orphaned browser pages.
609
+ * Fetches the next request to process from the underlying request provider.
511
610
  */
512
- protected _cleanupContext(_crawlingContext: Context): Promise<void>;
611
+ protected _fetchNextRequest(): Promise<Request<Dictionary> | null>;
513
612
  /**
514
613
  * Delays processing of the request based on the `sameDomainDelaySecs` option,
515
614
  * adding it back to the queue after the timeout passes. Returns `true` if the request
516
615
  * should be ignored and will be reclaimed to the queue once ready.
517
616
  */
518
- protected delayRequest(request: Request, source: IRequestList | RequestProvider): boolean;
617
+ protected delayRequest(request: Request, source: IRequestList | RequestProvider | IRequestManager): boolean;
519
618
  /**
520
619
  * Wrapper around requestHandler that fetches requests from RequestList/RequestQueue
521
620
  * then retries them in a case of an error, etc.
522
621
  */
523
622
  protected _runTaskFunction(): Promise<void>;
524
623
  /**
525
- * Run async callback with given timeout and retry.
624
+ * Wrapper around the crawling context's `enqueueLinks` method:
625
+ * - Injects `crawlDepth` to each request being added based on the crawling context request.
626
+ * - Provides defaults for the `enqueueLinks` options based on the crawler configuration.
627
+ * - These options can be overridden by the user.
628
+ * @internal
629
+ */
630
+ protected enqueueLinksWithCrawlDepth(options: SetRequired<EnqueueLinksOptions, 'urls'>, request: Request<Dictionary>, requestQueue: RequestProvider): Promise<BatchAddRequestsResult>;
631
+ /**
632
+ * Generator function that yields requests injected with the given crawl depth.
633
+ * @internal
634
+ */
635
+ protected addCrawlDepthRequestGenerator(requests: RequestsLike, newRequestDepth: number): AsyncGenerator<Source, void, undefined>;
636
+ /**
637
+ * Run async callback with given timeout and retry. Returns the result of the callback.
526
638
  * @ignore
527
639
  */
528
- protected _timeoutAndRetry(handler: () => Promise<unknown>, timeout: number, error: Error | string, maxRetries?: number, retried?: number): Promise<void>;
640
+ protected _timeoutAndRetry<T>(handler: () => Promise<T>, timeout: number, error: Error | string, maxRetries?: number, retried?: number): Promise<T>;
529
641
  /**
530
642
  * Returns true if either RequestList or RequestQueue have a request ready for processing.
531
643
  */
@@ -535,12 +647,17 @@ export declare class BasicCrawler<Context extends CrawlingContext = BasicCrawlin
535
647
  */
536
648
  protected _defaultIsFinishedFunction(): Promise<boolean>;
537
649
  private _rotateSession;
650
+ /**
651
+ * Unwraps errors thrown by the context pipeline to get the actual user error.
652
+ * RequestHandlerError and ContextPipelineInitializationError wrap the actual error.
653
+ */
654
+ private unwrapError;
538
655
  /**
539
656
  * Handles errors thrown by user provided requestHandler()
540
657
  */
541
- protected _requestFunctionErrorHandler(error: Error, crawlingContext: Context, source: IRequestList | RequestProvider): Promise<void>;
658
+ protected _requestFunctionErrorHandler(error: Error, crawlingContext: CrawlingContext, source: IRequestList | IRequestManager): Promise<void>;
542
659
  protected _tagUserHandlerError<T>(cb: () => unknown): Promise<T>;
543
- protected _handleFailedRequestHandler(crawlingContext: Context, error: Error): Promise<void>;
660
+ protected _handleFailedRequestHandler(crawlingContext: CrawlingContext, error: Error): Promise<void>;
544
661
  /**
545
662
  * Resolves the most verbose error message from a thrown error
546
663
  * @param error The error received
@@ -549,23 +666,21 @@ export declare class BasicCrawler<Context extends CrawlingContext = BasicCrawlin
549
666
  protected _getMessageFromError(error: Error, forceStack?: boolean): string | TimeoutError | undefined;
550
667
  protected _canRequestBeRetried(request: Request, error: Error): boolean;
551
668
  /**
552
- * Updates handledRequestsCount from possibly stored counts,
553
- * usually after worker migration. Since one of the stores
554
- * needs to have priority when both are present,
555
- * it is the request queue, because generally, the request
556
- * list will first be dumped into the queue and then left
557
- * empty.
669
+ * Updates handledRequestsCount from possibly stored counts, usually after worker migration.
558
670
  */
559
671
  protected _loadHandledRequestCount(): Promise<void>;
560
672
  protected _executeHooks<HookLike extends (...args: any[]) => Awaitable<void>>(hooks: HookLike[], ...args: Parameters<HookLike>): Promise<void>;
561
673
  /**
562
- * Function for cleaning up after all request are processed.
563
- * @ignore
674
+ * Stops the crawler immediately.
675
+ *
676
+ * This method doesn't wait for currently active requests to finish.
677
+ *
678
+ * To stop the crawler gracefully (waiting for all running requests to finish), use {@link BasicCrawler.stop|`crawler.stop()`} instead.
564
679
  */
565
680
  teardown(): Promise<void>;
566
681
  protected _getCookieHeaderFromRequest(request: Request): string;
567
682
  private _getRequestQueue;
568
- protected requestMatchesEnqueueStrategy(request: Request): boolean;
683
+ private requestMatchesEnqueueStrategy;
569
684
  }
570
685
  export interface CreateContextOptions {
571
686
  request: Request;
@@ -1 +1 @@
1
- {"version":3,"file":"basic-crawler.d.ts","sourceRoot":"","sources":["../../src/internals/basic-crawler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"basic-crawler.d.ts","sourceRoot":"","sources":["../../src/internals/basic-crawler.ts"],"names":[],"mappings":"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"}