@crawlee/cheerio 3.0.3-beta.11 → 3.0.3-beta.14

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.
@@ -2,34 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createCheerioRouter = exports.cheerioCrawlerEnqueueLinks = exports.CheerioCrawler = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const timeout_1 = require("@apify/timeout");
6
- const utilities_1 = require("@apify/utilities");
7
- const basic_1 = require("@crawlee/basic");
8
- const core_1 = require("@crawlee/core");
9
- const utils_1 = require("@crawlee/utils");
5
+ const http_1 = require("@crawlee/http");
10
6
  const cheerio = tslib_1.__importStar(require("cheerio"));
11
- const content_type_1 = tslib_1.__importDefault(require("content-type"));
12
- const got_scraping_1 = require("got-scraping");
13
7
  const htmlparser2_1 = require("htmlparser2");
14
8
  const WritableStream_1 = require("htmlparser2/lib/WritableStream");
15
- const iconv_lite_1 = tslib_1.__importDefault(require("iconv-lite"));
16
- const ow_1 = tslib_1.__importDefault(require("ow"));
17
- const util_1 = tslib_1.__importDefault(require("util"));
18
- /**
19
- * Default mime types, which CheerioScraper supports.
20
- */
21
- const HTML_AND_XML_MIME_TYPES = ['text/html', 'text/xml', 'application/xhtml+xml', 'application/xml'];
22
- const APPLICATION_JSON_MIME_TYPE = 'application/json';
23
- const CHEERIO_OPTIMIZED_AUTOSCALED_POOL_OPTIONS = {
24
- desiredConcurrency: 10,
25
- snapshotterOptions: {
26
- eventLoopSnapshotIntervalSecs: 2,
27
- maxBlockedMillis: 100,
28
- },
29
- systemStatusOptions: {
30
- maxEventLoopOverloadedRatio: 0.7,
31
- },
32
- };
33
9
  /**
34
10
  * Provides a framework for the parallel crawling of web pages using plain HTTP requests and
35
11
  * [cheerio](https://www.npmjs.com/package/cheerio) HTML parser.
@@ -71,7 +47,7 @@ const CHEERIO_OPTIMIZED_AUTOSCALED_POOL_OPTIONS = {
71
47
  * and skips pages with other content types. If you want the crawler to process other content types,
72
48
  * use the {@apilink CheerioCrawlerOptions.additionalMimeTypes} constructor option.
73
49
  * Beware that the parsing behavior differs for HTML, XML, JSON and other types of content.
74
- * For details, see {@apilink CheerioCrawlerOptions.requestHandler}.
50
+ * For more details, see {@apilink CheerioCrawlerOptions.requestHandler}.
75
51
  *
76
52
  * New requests are only dispatched when there is enough free CPU and memory available,
77
53
  * using the functionality provided by the {@apilink AutoscaledPool} class.
@@ -107,209 +83,30 @@ const CHEERIO_OPTIMIZED_AUTOSCALED_POOL_OPTIONS = {
107
83
  * ```
108
84
  * @category Crawlers
109
85
  */
110
- class CheerioCrawler extends basic_1.BasicCrawler {
86
+ class CheerioCrawler extends http_1.HttpCrawler {
111
87
  /**
112
88
  * All `CheerioCrawler` parameters are passed via an options object.
113
89
  */
114
- constructor(options = {}, config = core_1.Configuration.getGlobalConfig()) {
115
- (0, ow_1.default)(options, 'CheerioCrawlerOptions', ow_1.default.object.exactShape(CheerioCrawler.optionsShape));
116
- const { requestHandler, handlePageFunction, requestHandlerTimeoutSecs = 60, navigationTimeoutSecs = 30, ignoreSslErrors = true, additionalMimeTypes = [], suggestResponseEncoding, forceResponseEncoding, proxyConfiguration, persistCookiesPerSession, preNavigationHooks = [], postNavigationHooks = [],
117
- // Ignored
118
- handleRequestFunction,
119
- // BasicCrawler
120
- autoscaledPoolOptions = CHEERIO_OPTIMIZED_AUTOSCALED_POOL_OPTIONS, ...basicCrawlerOptions } = options;
121
- super({
122
- ...basicCrawlerOptions,
123
- requestHandler,
124
- autoscaledPoolOptions,
125
- // We need to add some time for internal functions to finish,
126
- // but not too much so that we would stall the crawler.
127
- requestHandlerTimeoutSecs: navigationTimeoutSecs + requestHandlerTimeoutSecs + basic_1.BASIC_CRAWLER_TIMEOUT_BUFFER_SECS,
128
- }, config);
129
- Object.defineProperty(this, "config", {
130
- enumerable: true,
131
- configurable: true,
132
- writable: true,
133
- value: config
134
- });
135
- /**
136
- * A reference to the underlying {@apilink ProxyConfiguration} class that manages the crawler's proxies.
137
- * Only available if used by the crawler.
138
- */
139
- Object.defineProperty(this, "proxyConfiguration", {
140
- enumerable: true,
141
- configurable: true,
142
- writable: true,
143
- value: void 0
144
- });
145
- Object.defineProperty(this, "userRequestHandlerTimeoutMillis", {
146
- enumerable: true,
147
- configurable: true,
148
- writable: true,
149
- value: void 0
150
- });
151
- Object.defineProperty(this, "preNavigationHooks", {
152
- enumerable: true,
153
- configurable: true,
154
- writable: true,
155
- value: void 0
156
- });
157
- Object.defineProperty(this, "postNavigationHooks", {
158
- enumerable: true,
159
- configurable: true,
160
- writable: true,
161
- value: void 0
162
- });
163
- Object.defineProperty(this, "persistCookiesPerSession", {
164
- enumerable: true,
165
- configurable: true,
166
- writable: true,
167
- value: void 0
168
- });
169
- Object.defineProperty(this, "navigationTimeoutMillis", {
170
- enumerable: true,
171
- configurable: true,
172
- writable: true,
173
- value: void 0
174
- });
175
- Object.defineProperty(this, "ignoreSslErrors", {
176
- enumerable: true,
177
- configurable: true,
178
- writable: true,
179
- value: void 0
180
- });
181
- Object.defineProperty(this, "suggestResponseEncoding", {
182
- enumerable: true,
183
- configurable: true,
184
- writable: true,
185
- value: void 0
186
- });
187
- Object.defineProperty(this, "forceResponseEncoding", {
188
- enumerable: true,
189
- configurable: true,
190
- writable: true,
191
- value: void 0
192
- });
193
- Object.defineProperty(this, "supportedMimeTypes", {
194
- enumerable: true,
195
- configurable: true,
196
- writable: true,
197
- value: void 0
90
+ // eslint-disable-next-line @typescript-eslint/no-useless-constructor
91
+ constructor(options, config) {
92
+ super(options, config);
93
+ }
94
+ async _parseHTML(response, isXml, crawlingContext) {
95
+ const dom = await this._parseHtmlToDom(response);
96
+ const $ = cheerio.load(dom, {
97
+ xmlMode: isXml,
98
+ // Recent versions of cheerio use parse5 as the HTML parser/serializer. It's more strict than htmlparser2
99
+ // and not good for scraping. It also does not have a great streaming interface.
100
+ // Here we tell cheerio to use htmlparser2 for serialization, otherwise the conflict produces weird errors.
101
+ _useHtmlParser2: true,
198
102
  });
199
- /**
200
- * @internal wraps public utility for mocking purposes
201
- */
202
- Object.defineProperty(this, "_requestAsBrowser", {
203
- enumerable: true,
204
- configurable: true,
205
- writable: true,
206
- value: (options) => {
207
- return new Promise((resolve, reject) => {
208
- const stream = (0, got_scraping_1.gotScraping)(options);
209
- stream.on('error', reject);
210
- stream.on('response', () => {
211
- resolve(addResponsePropertiesToStream(stream));
212
- });
213
- });
214
- }
215
- });
216
- this._handlePropertyNameChange({
217
- newName: 'requestHandler',
218
- oldName: 'handlePageFunction',
219
- propertyKey: 'requestHandler',
220
- newProperty: requestHandler,
221
- oldProperty: handlePageFunction,
222
- allowUndefined: true,
223
- });
224
- if (!this.requestHandler) {
225
- this.requestHandler = this.router;
226
- }
227
- // Cookies should be persisted per session only if session pool is used
228
- if (!this.useSessionPool && persistCookiesPerSession) {
229
- throw new Error('You cannot use "persistCookiesPerSession" without "useSessionPool" set to true.');
230
- }
231
- this.supportedMimeTypes = new Set([...HTML_AND_XML_MIME_TYPES, APPLICATION_JSON_MIME_TYPE]);
232
- if (additionalMimeTypes.length)
233
- this._extendSupportedMimeTypes(additionalMimeTypes);
234
- if (suggestResponseEncoding && forceResponseEncoding) {
235
- this.log.warning('Both forceResponseEncoding and suggestResponseEncoding options are set. Using forceResponseEncoding.');
236
- }
237
- this.userRequestHandlerTimeoutMillis = requestHandlerTimeoutSecs * 1000;
238
- this.navigationTimeoutMillis = navigationTimeoutSecs * 1000;
239
- this.ignoreSslErrors = ignoreSslErrors;
240
- this.suggestResponseEncoding = suggestResponseEncoding;
241
- this.forceResponseEncoding = forceResponseEncoding;
242
- this.proxyConfiguration = proxyConfiguration;
243
- this.preNavigationHooks = preNavigationHooks;
244
- this.postNavigationHooks = [
245
- ({ request, response }) => this._abortDownloadOfBody(request, response),
246
- ...postNavigationHooks,
247
- ];
248
- if (this.useSessionPool) {
249
- this.persistCookiesPerSession = persistCookiesPerSession ?? true;
250
- }
251
- else {
252
- this.persistCookiesPerSession = false;
253
- }
254
- }
255
- /**
256
- * **EXPERIMENTAL**
257
- * Function for attaching CrawlerExtensions such as the Unblockers.
258
- * @param extension Crawler extension that overrides the crawler configuration.
259
- */
260
- use(extension) {
261
- (0, ow_1.default)(extension, ow_1.default.object.instanceOf(core_1.CrawlerExtension));
262
- const extensionOptions = extension.getCrawlerOptions();
263
- for (const [key, value] of (0, utils_1.entries)(extensionOptions)) {
264
- const isConfigurable = this.hasOwnProperty(key);
265
- const originalType = typeof this[key];
266
- const extensionType = typeof value; // What if we want to null something? It is really needed?
267
- const isSameType = originalType === extensionType || value == null; // fast track for deleting keys
268
- const exists = this[key] != null;
269
- if (!isConfigurable) { // Test if the property can be configured on the crawler
270
- throw new Error(`${extension.name} tries to set property "${key}" that is not configurable on CheerioCrawler instance.`);
271
- }
272
- if (!isSameType && exists) { // Assuming that extensions will only add up configuration
273
- throw new Error(`${extension.name} tries to set property of different type "${extensionType}". "CheerioCrawler.${key}: ${originalType}".`);
274
- }
275
- this.log.warning(`${extension.name} is overriding "CheerioCrawler.${key}: ${originalType}" with ${value}.`);
276
- this[key] = value;
277
- }
278
- }
279
- /**
280
- * Wrapper around requestHandler that opens and closes pages etc.
281
- */
282
- async _runRequestHandler(crawlingContext) {
283
- const { request, session } = crawlingContext;
284
- if (this.proxyConfiguration) {
285
- const sessionId = session ? session.id : undefined;
286
- crawlingContext.proxyInfo = await this.proxyConfiguration.newProxyInfo(sessionId);
287
- }
288
- if (!request.skipNavigation) {
289
- await this._handleNavigation(crawlingContext);
290
- (0, timeout_1.tryCancel)();
291
- const { dom, isXml, body, contentType, response } = await this._parseResponse(request, crawlingContext.response);
292
- (0, timeout_1.tryCancel)();
293
- if (this.useSessionPool) {
294
- this._throwOnBlockedRequest(session, response.statusCode);
295
- }
296
- if (this.persistCookiesPerSession) {
297
- session.setCookiesFromResponse(response);
298
- }
299
- request.loadedUrl = response.url;
300
- const $ = dom
301
- ? cheerio.load(dom, {
302
- xmlMode: isXml,
303
- // Recent versions of cheerio use parse5 as the HTML parser/serializer. It's more strict than htmlparser2
304
- // and not good for scraping. It also does not have a great streaming interface.
305
- // Here we tell cheerio to use htmlparser2 for serialization, otherwise the conflict produces weird errors.
306
- _useHtmlParser2: true,
307
- })
308
- : null;
309
- crawlingContext.$ = $;
310
- crawlingContext.contentType = contentType;
311
- crawlingContext.response = response;
312
- crawlingContext.enqueueLinks = async (enqueueOptions) => {
103
+ return {
104
+ dom,
105
+ $,
106
+ get body() {
107
+ return isXml ? $.xml() : $.html({ decodeEntities: false });
108
+ },
109
+ enqueueLinks: async (enqueueOptions) => {
313
110
  return cheerioCrawlerEnqueueLinks({
314
111
  options: enqueueOptions,
315
112
  $,
@@ -317,200 +114,8 @@ class CheerioCrawler extends basic_1.BasicCrawler {
317
114
  originalRequestUrl: crawlingContext.request.url,
318
115
  finalRequestUrl: crawlingContext.request.loadedUrl,
319
116
  });
320
- };
321
- Object.defineProperty(crawlingContext, 'json', {
322
- get() {
323
- if (contentType.type !== APPLICATION_JSON_MIME_TYPE)
324
- return null;
325
- const jsonString = body.toString(contentType.encoding);
326
- return JSON.parse(jsonString);
327
- },
328
- });
329
- Object.defineProperty(crawlingContext, 'body', {
330
- get() {
331
- // NOTE: For XML/HTML documents, we don't store the original body and only reconstruct it from Cheerio's DOM.
332
- // This is to save memory for high-concurrency crawls. The downside is that changes
333
- // made to DOM are reflected in the HTML, but we can live with that...
334
- if (dom) {
335
- return isXml ? $.xml() : $.html({ decodeEntities: false });
336
- }
337
- return body;
338
- },
339
- });
340
- }
341
- return (0, timeout_1.addTimeoutToPromise)(() => Promise.resolve(this.requestHandler(crawlingContext)), this.userRequestHandlerTimeoutMillis, `requestHandler timed out after ${this.userRequestHandlerTimeoutMillis / 1000} seconds.`);
342
- }
343
- async _handleNavigation(crawlingContext) {
344
- const gotOptions = {};
345
- const { request, session } = crawlingContext;
346
- const preNavigationHooksCookies = this._getCookieHeaderFromRequest(request);
347
- // Execute pre navigation hooks before applying session pool cookies,
348
- // as they may also set cookies in the session
349
- await this._executeHooks(this.preNavigationHooks, crawlingContext, gotOptions);
350
- (0, timeout_1.tryCancel)();
351
- const postNavigationHooksCookies = this._getCookieHeaderFromRequest(request);
352
- this._applyCookies(crawlingContext, gotOptions, preNavigationHooksCookies, postNavigationHooksCookies);
353
- const proxyUrl = crawlingContext.proxyInfo?.url;
354
- crawlingContext.response = await (0, timeout_1.addTimeoutToPromise)(() => this._requestFunction({ request, session, proxyUrl, gotOptions }), this.navigationTimeoutMillis, `request timed out after ${this.navigationTimeoutMillis / 1000} seconds.`);
355
- (0, timeout_1.tryCancel)();
356
- await this._executeHooks(this.postNavigationHooks, crawlingContext, gotOptions);
357
- (0, timeout_1.tryCancel)();
358
- }
359
- /**
360
- * Sets the cookie header to `gotOptions` based on the provided request and session headers, as well as any changes that occurred due to hooks.
361
- */
362
- _applyCookies({ session, request }, gotOptions, preHookCookies, postHookCookies) {
363
- const sessionCookie = session?.getCookieString(request.url) ?? '';
364
- let alteredGotOptionsCookies = (gotOptions.headers?.Cookie || gotOptions.headers?.cookie || '');
365
- if (gotOptions.headers?.Cookie && gotOptions.headers?.cookie) {
366
- const { Cookie: upperCaseHeader, cookie: lowerCaseHeader, } = gotOptions.headers;
367
- // eslint-disable-next-line max-len
368
- this.log.warning(`Encountered mixed casing for the cookie headers in the got options for request ${request.url} (${request.id}). Their values will be merged`);
369
- const sourceCookies = [];
370
- if (Array.isArray(lowerCaseHeader)) {
371
- sourceCookies.push(...lowerCaseHeader);
372
- }
373
- else {
374
- sourceCookies.push(lowerCaseHeader);
375
- }
376
- if (Array.isArray(upperCaseHeader)) {
377
- sourceCookies.push(...upperCaseHeader);
378
- }
379
- else {
380
- sourceCookies.push(upperCaseHeader);
381
- }
382
- alteredGotOptionsCookies = (0, core_1.mergeCookies)(request.url, sourceCookies);
383
- }
384
- const sourceCookies = [
385
- sessionCookie,
386
- preHookCookies,
387
- ];
388
- if (Array.isArray(alteredGotOptionsCookies)) {
389
- sourceCookies.push(...alteredGotOptionsCookies);
390
- }
391
- else {
392
- sourceCookies.push(alteredGotOptionsCookies);
393
- }
394
- sourceCookies.push(postHookCookies);
395
- const mergedCookie = (0, core_1.mergeCookies)(request.url, sourceCookies);
396
- gotOptions.headers ?? (gotOptions.headers = {});
397
- Reflect.deleteProperty(gotOptions.headers, 'Cookie');
398
- Reflect.deleteProperty(gotOptions.headers, 'cookie');
399
- gotOptions.headers.Cookie = mergedCookie;
400
- }
401
- /**
402
- * Function to make the HTTP request. It performs optimizations
403
- * on the request such as only downloading the request body if the
404
- * received content type matches text/html, application/xml, application/xhtml+xml.
405
- */
406
- async _requestFunction({ request, session, proxyUrl, gotOptions }) {
407
- const opts = this._getRequestOptions(request, session, proxyUrl, gotOptions);
408
- try {
409
- return await this._requestAsBrowser(opts);
410
- }
411
- catch (e) {
412
- if (e instanceof got_scraping_1.TimeoutError) {
413
- this._handleRequestTimeout(session);
414
- return undefined;
415
- }
416
- throw e;
417
- }
418
- }
419
- /**
420
- * Encodes and parses response according to the provided content type
421
- */
422
- async _parseResponse(request, responseStream) {
423
- const { statusCode } = responseStream;
424
- const { type, charset } = (0, utils_1.parseContentTypeFromResponse)(responseStream);
425
- const { response, encoding } = this._encodeResponse(request, responseStream, charset);
426
- const contentType = { type, encoding };
427
- if (statusCode >= 500) {
428
- const body = await (0, utilities_1.readStreamToString)(response, encoding);
429
- // Errors are often sent as JSON, so attempt to parse them,
430
- // despite Accept header being set to text/html.
431
- if (type === APPLICATION_JSON_MIME_TYPE) {
432
- const errorResponse = JSON.parse(body);
433
- let { message } = errorResponse;
434
- if (!message)
435
- message = util_1.default.inspect(errorResponse, { depth: 1, maxArrayLength: 10 });
436
- throw new Error(`${statusCode} - ${message}`);
437
- }
438
- // It's not a JSON, so it's probably some text. Get the first 100 chars of it.
439
- throw new Error(`${statusCode} - Internal Server Error: ${body.substr(0, 100)}`);
440
- }
441
- else if (HTML_AND_XML_MIME_TYPES.includes(type)) {
442
- const dom = await this._parseHtmlToDom(response);
443
- return ({ dom, isXml: type.includes('xml'), response, contentType });
444
- }
445
- else {
446
- const body = await (0, utilities_1.concatStreamToBuffer)(response);
447
- return { body, response, contentType };
448
- }
449
- }
450
- /**
451
- * Combines the provided `requestOptions` with mandatory (non-overridable) values.
452
- */
453
- _getRequestOptions(request, session, proxyUrl, gotOptions) {
454
- const requestOptions = {
455
- url: request.url,
456
- method: request.method,
457
- proxyUrl,
458
- timeout: { request: this.navigationTimeoutMillis },
459
- sessionToken: session,
460
- ...gotOptions,
461
- headers: { ...request.headers, ...gotOptions?.headers },
462
- https: {
463
- ...gotOptions?.https,
464
- rejectUnauthorized: !this.ignoreSslErrors,
465
117
  },
466
- isStream: true,
467
118
  };
468
- // Delete any possible lowercased header for cookie as they are merged in _applyCookies under the uppercase Cookie header
469
- Reflect.deleteProperty(requestOptions.headers, 'cookie');
470
- // TODO this is incorrect, the check for man in the middle needs to be done
471
- // on individual proxy level, not on the `proxyConfiguration` level,
472
- // because users can use normal + MITM proxies in a single configuration.
473
- // Disable SSL verification for MITM proxies
474
- if (this.proxyConfiguration && this.proxyConfiguration.isManInTheMiddle) {
475
- requestOptions.https = {
476
- ...requestOptions.https,
477
- rejectUnauthorized: false,
478
- };
479
- }
480
- if (/PATCH|POST|PUT/.test(request.method))
481
- requestOptions.body = request.payload;
482
- return requestOptions;
483
- }
484
- _encodeResponse(request, response, encoding) {
485
- if (this.forceResponseEncoding) {
486
- encoding = this.forceResponseEncoding;
487
- }
488
- else if (!encoding && this.suggestResponseEncoding) {
489
- encoding = this.suggestResponseEncoding;
490
- }
491
- // Fall back to utf-8 if we still don't have encoding.
492
- const utf8 = 'utf8';
493
- if (!encoding)
494
- return { response, encoding: utf8 };
495
- // This means that the encoding is one of Node.js supported
496
- // encodings and we don't need to re-encode it.
497
- if (Buffer.isEncoding(encoding))
498
- return { response, encoding };
499
- // Try to re-encode a variety of unsupported encodings to utf-8
500
- if (iconv_lite_1.default.encodingExists(encoding)) {
501
- const encodeStream = iconv_lite_1.default.encodeStream(utf8);
502
- const decodeStream = iconv_lite_1.default.decodeStream(encoding).on('error', (err) => encodeStream.emit('error', err));
503
- response.on('error', (err) => decodeStream.emit('error', err));
504
- const encodedResponse = response.pipe(decodeStream).pipe(encodeStream);
505
- encodedResponse.statusCode = response.statusCode;
506
- encodedResponse.headers = response.headers;
507
- encodedResponse.url = response.url;
508
- return {
509
- response: encodedResponse,
510
- encoding: utf8,
511
- };
512
- }
513
- throw new Error(`Resource ${request.url} served with unsupported charset/encoding: ${encoding}`);
514
119
  }
515
120
  async _parseHtmlToDom(response) {
516
121
  return new Promise((resolve, reject) => {
@@ -527,73 +132,21 @@ class CheerioCrawler extends basic_1.BasicCrawler {
527
132
  .pipe(parser);
528
133
  });
529
134
  }
530
- /**
531
- * Checks and extends supported mime types
532
- */
533
- _extendSupportedMimeTypes(additionalMimeTypes) {
534
- additionalMimeTypes.forEach((mimeType) => {
535
- try {
536
- const parsedType = content_type_1.default.parse(mimeType);
537
- this.supportedMimeTypes.add(parsedType.type);
538
- }
539
- catch (err) {
540
- throw new Error(`Can not parse mime type ${mimeType} from "options.additionalMimeTypes".`);
541
- }
542
- });
543
- }
544
- /**
545
- * Handles timeout request
546
- */
547
- _handleRequestTimeout(session) {
548
- session?.markBad();
549
- throw new Error(`request timed out after ${this.requestHandlerTimeoutMillis / 1000} seconds.`);
550
- }
551
- _abortDownloadOfBody(request, response) {
552
- const { statusCode } = response;
553
- const { type } = (0, utils_1.parseContentTypeFromResponse)(response);
554
- if (statusCode === 406) {
555
- request.noRetry = true;
556
- throw new Error(`Resource ${request.url} is not available in the format requested by the Accept header. Skipping resource.`);
557
- }
558
- if (!this.supportedMimeTypes.has(type) && statusCode < 500) {
559
- request.noRetry = true;
560
- throw new Error(`Resource ${request.url} served Content-Type ${type}, `
561
- + `but only ${Array.from(this.supportedMimeTypes).join(', ')} are allowed. Skipping resource.`);
562
- }
563
- }
564
135
  }
565
136
  exports.CheerioCrawler = CheerioCrawler;
566
- Object.defineProperty(CheerioCrawler, "optionsShape", {
567
- enumerable: true,
568
- configurable: true,
569
- writable: true,
570
- value: {
571
- ...basic_1.BasicCrawler.optionsShape,
572
- handlePageFunction: ow_1.default.optional.function,
573
- navigationTimeoutSecs: ow_1.default.optional.number,
574
- ignoreSslErrors: ow_1.default.optional.boolean,
575
- additionalMimeTypes: ow_1.default.optional.array.ofType(ow_1.default.string),
576
- suggestResponseEncoding: ow_1.default.optional.string,
577
- forceResponseEncoding: ow_1.default.optional.string,
578
- proxyConfiguration: ow_1.default.optional.object.validate(core_1.validators.proxyConfiguration),
579
- persistCookiesPerSession: ow_1.default.optional.boolean,
580
- preNavigationHooks: ow_1.default.optional.array,
581
- postNavigationHooks: ow_1.default.optional.array,
582
- }
583
- });
584
137
  /** @internal */
585
138
  async function cheerioCrawlerEnqueueLinks({ options, $, requestQueue, originalRequestUrl, finalRequestUrl }) {
586
139
  if (!$) {
587
140
  throw new Error('Cannot enqueue links because the DOM is not available.');
588
141
  }
589
- const baseUrl = (0, core_1.resolveBaseUrlForEnqueueLinksFiltering)({
142
+ const baseUrl = (0, http_1.resolveBaseUrlForEnqueueLinksFiltering)({
590
143
  enqueueStrategy: options?.strategy,
591
144
  finalRequestUrl,
592
145
  originalRequestUrl,
593
146
  userProvidedBaseUrl: options?.baseUrl,
594
147
  });
595
148
  const urls = extractUrlsFromCheerio($, options?.selector ?? 'a', options?.baseUrl ?? finalRequestUrl ?? originalRequestUrl);
596
- return (0, core_1.enqueueLinks)({
149
+ return (0, http_1.enqueueLinks)({
597
150
  requestQueue,
598
151
  urls,
599
152
  baseUrl,
@@ -631,38 +184,6 @@ function extractUrlsFromCheerio($, selector, baseUrl) {
631
184
  })
632
185
  .filter((href) => !!href);
633
186
  }
634
- /**
635
- * The stream object returned from got does not have the below properties.
636
- * At the same time, you can't read data directly from the response stream,
637
- * because they won't get emitted unless you also read from the primary
638
- * got stream. To be able to work with only one stream, we move the expected props
639
- * from the response stream to the got stream.
640
- * @internal
641
- */
642
- function addResponsePropertiesToStream(stream) {
643
- const properties = [
644
- 'statusCode', 'statusMessage', 'headers',
645
- 'complete', 'httpVersion', 'rawHeaders',
646
- 'rawTrailers', 'trailers', 'url',
647
- 'request',
648
- ];
649
- const response = stream.response;
650
- response.on('end', () => {
651
- // @ts-expect-error
652
- Object.assign(stream.rawTrailers, response.rawTrailers);
653
- // @ts-expect-error
654
- Object.assign(stream.trailers, response.trailers);
655
- // @ts-expect-error
656
- stream.complete = response.complete;
657
- });
658
- for (const prop of properties) {
659
- if (!(prop in stream)) {
660
- // @ts-expect-error
661
- stream[prop] = response[prop];
662
- }
663
- }
664
- return stream;
665
- }
666
187
  /**
667
188
  * Creates new {@apilink Router} instance that works based on request labels.
668
189
  * This instance can then serve as a `requestHandler` of your {@apilink CheerioCrawler}.
@@ -688,7 +209,7 @@ function addResponsePropertiesToStream(stream) {
688
209
  * ```
689
210
  */
690
211
  function createCheerioRouter() {
691
- return core_1.Router.create();
212
+ return http_1.Router.create();
692
213
  }
693
214
  exports.createCheerioRouter = createCheerioRouter;
694
215
  //# sourceMappingURL=cheerio-crawler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cheerio-crawler.js","sourceRoot":"","sources":["../../src/internals/cheerio-crawler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cheerio-crawler.js","sourceRoot":"","sources":["../../src/internals/cheerio-crawler.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crawlee/cheerio",
3
- "version": "3.0.3-beta.11",
3
+ "version": "3.0.3-beta.14",
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"
@@ -53,14 +53,9 @@
53
53
  "access": "public"
54
54
  },
55
55
  "dependencies": {
56
- "@apify/timeout": "^0.3.0",
57
- "@apify/utilities": "^2.0.0",
58
- "@crawlee/basic": "^3.0.3-beta.11",
59
- "@types/content-type": "^1.1.5",
56
+ "@crawlee/http": "^3.0.3-beta.14",
57
+ "@crawlee/types": "^3.0.3-beta.14",
60
58
  "cheerio": "1.0.0-rc.12",
61
- "content-type": "^1.0.4",
62
- "htmlparser2": "^8.0.1",
63
- "iconv-lite": "^0.6.3",
64
- "ow": "^0.28.1"
59
+ "htmlparser2": "^8.0.1"
65
60
  }
66
61
  }