@crawlee/core 3.11.2-beta.24 → 3.11.2-beta.26
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crawlee/core",
|
|
3
|
-
"version": "3.11.2-beta.
|
|
3
|
+
"version": "3.11.2-beta.26",
|
|
4
4
|
"description": "The scalable web crawling and scraping library for JavaScript/Node.js. Enables development of data extraction and web automation jobs (not only) with headless Chrome and Puppeteer.",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=16.0.0"
|
|
@@ -59,9 +59,9 @@
|
|
|
59
59
|
"@apify/pseudo_url": "^2.0.30",
|
|
60
60
|
"@apify/timeout": "^0.3.0",
|
|
61
61
|
"@apify/utilities": "^2.7.10",
|
|
62
|
-
"@crawlee/memory-storage": "3.11.2-beta.
|
|
63
|
-
"@crawlee/types": "3.11.2-beta.
|
|
64
|
-
"@crawlee/utils": "3.11.2-beta.
|
|
62
|
+
"@crawlee/memory-storage": "3.11.2-beta.26",
|
|
63
|
+
"@crawlee/types": "3.11.2-beta.26",
|
|
64
|
+
"@crawlee/utils": "3.11.2-beta.26",
|
|
65
65
|
"@sapphire/async-queue": "^1.5.1",
|
|
66
66
|
"@types/tough-cookie": "^4.0.2",
|
|
67
67
|
"@vladfrangu/async_event_emitter": "^2.2.2",
|
|
@@ -85,5 +85,5 @@
|
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
},
|
|
88
|
-
"gitHead": "
|
|
88
|
+
"gitHead": "4e774e1e3f89ed0fecf996734a93c24ba0292f84"
|
|
89
89
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ParseSitemapOptions } from '@crawlee/utils';
|
|
1
2
|
import type { IRequestList } from './request_list';
|
|
2
3
|
import { Request } from '../request';
|
|
3
4
|
export interface SitemapRequestListOptions {
|
|
@@ -28,6 +29,10 @@ export interface SitemapRequestListOptions {
|
|
|
28
29
|
* @default 200
|
|
29
30
|
*/
|
|
30
31
|
maxBufferSize?: number;
|
|
32
|
+
/**
|
|
33
|
+
* Advanced options for the underlying `parseSitemap` call.
|
|
34
|
+
*/
|
|
35
|
+
parseSitemapOptions?: Omit<ParseSitemapOptions, 'emitNestedSitemaps' | 'maxDepth'>;
|
|
31
36
|
}
|
|
32
37
|
/**
|
|
33
38
|
* A list of URLs to crawl parsed from a sitemap.
|
|
@@ -72,6 +77,7 @@ export declare class SitemapRequestList implements IRequestList {
|
|
|
72
77
|
private handledUrlCount;
|
|
73
78
|
private persistStateKey?;
|
|
74
79
|
private store?;
|
|
80
|
+
private closed;
|
|
75
81
|
/**
|
|
76
82
|
* Proxy URL to be used for sitemap loading.
|
|
77
83
|
*/
|
|
@@ -149,6 +155,12 @@ export declare class SitemapRequestList implements IRequestList {
|
|
|
149
155
|
* @inheritDoc
|
|
150
156
|
*/
|
|
151
157
|
reclaimRequest(request: Request): Promise<void>;
|
|
158
|
+
/**
|
|
159
|
+
* Aborts the internal sitemap loading, stops the processing of the sitemap contents and drops all the pending URLs.
|
|
160
|
+
*
|
|
161
|
+
* Calling `fetchNextRequest()` after this method will always return `null`.
|
|
162
|
+
*/
|
|
163
|
+
teardown(): Promise<void>;
|
|
152
164
|
/**
|
|
153
165
|
* @inheritDoc
|
|
154
166
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sitemap_request_list.d.ts","sourceRoot":"","sources":["../../src/storages/sitemap_request_list.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sitemap_request_list.d.ts","sourceRoot":"","sources":["../../src/storages/sitemap_request_list.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,mBAAmB,EAAgB,MAAM,gBAAgB,CAAC;AAIxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAKrC,MAAM,WAAW,yBAAyB;IACtC;;OAEG;IACH,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,mBAAmB,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,oBAAoB,GAAG,UAAU,CAAC,CAAC;CACtF;AAiBD;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,YAAY;IACnD;;;OAGG;IACH,UAAU,cAAqB;IAE/B,2DAA2D;IAC3D,OAAO,CAAC,SAAS,CAAqB;IAEtC;;;;OAIG;IACH,OAAO,CAAC,WAAW,CAA8B;IAEjD;;OAEG;IACH,OAAO,CAAC,sBAAsB,CAa5B;IAEF;;;;;OAKG;IACH,OAAO,CAAC,cAAc,CAAY;IAElC;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY,CAAkB;IAEtC,iDAAiD;IACjD,OAAO,CAAC,eAAe,CAAK;IAE5B,OAAO,CAAC,eAAe,CAAC,CAAS;IAEjC,OAAO,CAAC,KAAK,CAAC,CAAgB;IAE9B,OAAO,CAAC,MAAM,CAAkB;IAEhC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAqB;IAErC;;OAEG;IACH,OAAO,CAAC,GAAG,CAAsD;IAEjE,gBAAgB;IAChB,OAAO;IA0BP;;;;OAIG;YACW,WAAW;IAiBzB;;;;;OAKG;YACW,WAAW;IAoBzB;;;;OAIG;IACH,oBAAoB,IAAI,OAAO;IAO/B;;;;OAIG;YACW,IAAI;IAqClB;;;;;;OAMG;WACU,IAAI,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAqBlF;;OAEG;IACH,MAAM,IAAI,MAAM;IAIhB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAMpC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjC;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;YAmCrB,YAAY;IA+B1B;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAkBjD;;OAEG;IACI,CAAC,MAAM,CAAC,aAAa,CAAC;IAS7B;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrD;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ/B;;OAEG;IACG,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzD,OAAO,CAAC,+BAA+B;CAQ1C"}
|
|
@@ -9,6 +9,8 @@ const ow_1 = tslib_1.__importDefault(require("ow"));
|
|
|
9
9
|
const key_value_store_1 = require("./key_value_store");
|
|
10
10
|
const utils_2 = require("./utils");
|
|
11
11
|
const request_1 = require("../request");
|
|
12
|
+
/** @internal */
|
|
13
|
+
const STATE_PERSISTENCE_KEY = 'SITEMAP_REQUEST_LIST_STATE';
|
|
12
14
|
/**
|
|
13
15
|
* A list of URLs to crawl parsed from a sitemap.
|
|
14
16
|
*
|
|
@@ -112,6 +114,12 @@ class SitemapRequestList {
|
|
|
112
114
|
writable: true,
|
|
113
115
|
value: void 0
|
|
114
116
|
});
|
|
117
|
+
Object.defineProperty(this, "closed", {
|
|
118
|
+
enumerable: true,
|
|
119
|
+
configurable: true,
|
|
120
|
+
writable: true,
|
|
121
|
+
value: false
|
|
122
|
+
});
|
|
115
123
|
/**
|
|
116
124
|
* Proxy URL to be used for sitemap loading.
|
|
117
125
|
*/
|
|
@@ -137,6 +145,7 @@ class SitemapRequestList {
|
|
|
137
145
|
signal: ow_1.default.optional.any(),
|
|
138
146
|
timeoutMillis: ow_1.default.optional.number,
|
|
139
147
|
maxBufferSize: ow_1.default.optional.number,
|
|
148
|
+
parseSitemapOptions: ow_1.default.optional.object,
|
|
140
149
|
}));
|
|
141
150
|
this.persistStateKey = options.persistStateKey;
|
|
142
151
|
this.proxyUrl = options.proxyUrl;
|
|
@@ -154,6 +163,9 @@ class SitemapRequestList {
|
|
|
154
163
|
*/
|
|
155
164
|
async pushNextUrl(url) {
|
|
156
165
|
return new Promise((resolve) => {
|
|
166
|
+
if (this.closed) {
|
|
167
|
+
return resolve();
|
|
168
|
+
}
|
|
157
169
|
if (!this.urlQueueStream.push(url)) {
|
|
158
170
|
// This doesn't work with the 'drain' event (it's not emitted for some reason).
|
|
159
171
|
this.urlQueueStream.once('readdata', () => {
|
|
@@ -173,6 +185,9 @@ class SitemapRequestList {
|
|
|
173
185
|
*/
|
|
174
186
|
async readNextUrl() {
|
|
175
187
|
return new Promise((resolve) => {
|
|
188
|
+
if (this.closed) {
|
|
189
|
+
return resolve(null);
|
|
190
|
+
}
|
|
176
191
|
const result = this.urlQueueStream.read();
|
|
177
192
|
if (!result && !this.isSitemapFullyLoaded()) {
|
|
178
193
|
this.urlQueueStream.once('readable', () => {
|
|
@@ -200,12 +215,13 @@ class SitemapRequestList {
|
|
|
200
215
|
*
|
|
201
216
|
* Resolves once all the sitemaps URLs have been fully loaded (sets `isSitemapFullyLoaded` to `true`).
|
|
202
217
|
*/
|
|
203
|
-
async load() {
|
|
218
|
+
async load({ parseSitemapOptions, }) {
|
|
204
219
|
while (!this.isSitemapFullyLoaded() && !this.abortLoading) {
|
|
205
220
|
const sitemapUrl = this.sitemapParsingProgress.inProgressSitemapUrl ??
|
|
206
221
|
this.sitemapParsingProgress.pendingSitemapUrls.values().next().value;
|
|
207
222
|
try {
|
|
208
223
|
for await (const item of (0, utils_1.parseSitemap)([{ type: 'url', url: sitemapUrl }], this.proxyUrl, {
|
|
224
|
+
...parseSitemapOptions,
|
|
209
225
|
maxDepth: 0,
|
|
210
226
|
emitNestedSitemaps: true,
|
|
211
227
|
})) {
|
|
@@ -237,9 +253,12 @@ class SitemapRequestList {
|
|
|
237
253
|
* Track the loading progress using the `isSitemapFullyLoaded` property.
|
|
238
254
|
*/
|
|
239
255
|
static async open(options) {
|
|
240
|
-
const requestList = new SitemapRequestList(
|
|
256
|
+
const requestList = new SitemapRequestList({
|
|
257
|
+
...options,
|
|
258
|
+
persistStateKey: options.persistStateKey ?? STATE_PERSISTENCE_KEY,
|
|
259
|
+
});
|
|
241
260
|
await requestList.restoreState();
|
|
242
|
-
void requestList.load();
|
|
261
|
+
void requestList.load({ parseSitemapOptions: options.parseSitemapOptions });
|
|
243
262
|
options?.signal?.addEventListener('abort', () => {
|
|
244
263
|
requestList.abortLoading = true;
|
|
245
264
|
});
|
|
@@ -303,6 +322,7 @@ class SitemapRequestList {
|
|
|
303
322
|
reclaimed: [...this.inProgress, ...this.reclaimed], // In-progress and reclaimed requests will be both retried if state is restored
|
|
304
323
|
requestData: Array.from(this.requestData.entries()),
|
|
305
324
|
abortLoading: this.abortLoading,
|
|
325
|
+
closed: this.closed,
|
|
306
326
|
});
|
|
307
327
|
}
|
|
308
328
|
async restoreState() {
|
|
@@ -326,6 +346,7 @@ class SitemapRequestList {
|
|
|
326
346
|
this.urlQueueStream.push(url);
|
|
327
347
|
}
|
|
328
348
|
this.abortLoading = state.abortLoading;
|
|
349
|
+
this.closed = state.closed;
|
|
329
350
|
}
|
|
330
351
|
/**
|
|
331
352
|
* @inheritDoc
|
|
@@ -351,7 +372,7 @@ class SitemapRequestList {
|
|
|
351
372
|
* @inheritDoc
|
|
352
373
|
*/
|
|
353
374
|
async *[Symbol.asyncIterator]() {
|
|
354
|
-
while (
|
|
375
|
+
while (!(await this.isFinished())) {
|
|
355
376
|
const request = await this.fetchNextRequest();
|
|
356
377
|
if (!request)
|
|
357
378
|
break;
|
|
@@ -366,6 +387,17 @@ class SitemapRequestList {
|
|
|
366
387
|
this.reclaimed.add(request.url);
|
|
367
388
|
this.inProgress.delete(request.url);
|
|
368
389
|
}
|
|
390
|
+
/**
|
|
391
|
+
* Aborts the internal sitemap loading, stops the processing of the sitemap contents and drops all the pending URLs.
|
|
392
|
+
*
|
|
393
|
+
* Calling `fetchNextRequest()` after this method will always return `null`.
|
|
394
|
+
*/
|
|
395
|
+
async teardown() {
|
|
396
|
+
this.closed = true;
|
|
397
|
+
this.abortLoading = true;
|
|
398
|
+
await this.persistState();
|
|
399
|
+
this.urlQueueStream.emit('readdata'); // unblocks the potentially waiting `pushNextUrl` call
|
|
400
|
+
}
|
|
369
401
|
/**
|
|
370
402
|
* @inheritDoc
|
|
371
403
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sitemap_request_list.js","sourceRoot":"","sources":["../../src/storages/sitemap_request_list.ts"],"names":[],"mappings":";;;;AAAA,6CAAwC;AAExC,6DAAoC;AACpC,
|
|
1
|
+
{"version":3,"file":"sitemap_request_list.js","sourceRoot":"","sources":["../../src/storages/sitemap_request_list.ts"],"names":[],"mappings":"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"}
|