@crawlee/http-client 4.0.0-beta.28 → 4.0.0-beta.29
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/base-http-client.d.ts +3 -0
- package/base-http-client.d.ts.map +1 -1
- package/base-http-client.js +23 -4
- package/base-http-client.js.map +1 -1
- package/package.json +4 -3
package/base-http-client.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { BaseHttpClient as BaseHttpClientInterface, SendRequestOptions } from '@crawlee/types';
|
|
2
|
+
import type { Log } from '@apify/log';
|
|
2
3
|
export interface CustomFetchOptions {
|
|
3
4
|
proxyUrl?: string;
|
|
4
5
|
}
|
|
@@ -8,6 +9,8 @@ export interface CustomFetchOptions {
|
|
|
8
9
|
* implement only the low-level network call in `fetch`.
|
|
9
10
|
*/
|
|
10
11
|
export declare abstract class BaseHttpClient implements BaseHttpClientInterface {
|
|
12
|
+
protected log: Log;
|
|
13
|
+
constructor(log?: Log);
|
|
11
14
|
/**
|
|
12
15
|
* Perform the raw network request and return a single Response without any
|
|
13
16
|
* automatic redirect following or special error handling.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-http-client.d.ts","sourceRoot":"","sources":["../src/base-http-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,IAAI,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGpG,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,8BAAsB,cAAe,YAAW,uBAAuB;IACnE;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;YAEtF,YAAY;
|
|
1
|
+
{"version":3,"file":"base-http-client.d.ts","sourceRoot":"","sources":["../src/base-http-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,IAAI,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGpG,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,8BAAsB,cAAe,YAAW,uBAAuB;IACnE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;gBAEP,GAAG,CAAC,EAAE,GAAG;IAIrB;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;YAEtF,YAAY;YAeZ,UAAU;IAYxB,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,oBAAoB;IA+B5B;;OAEG;IACG,WAAW,CAAC,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;CA8B9F"}
|
package/base-http-client.js
CHANGED
|
@@ -1,20 +1,39 @@
|
|
|
1
1
|
import { CookieJar } from 'tough-cookie';
|
|
2
|
+
import defaultLog from '@apify/log';
|
|
2
3
|
/**
|
|
3
4
|
* Base HTTP client that provides fetch-like `sendRequest` with Crawlee-managed
|
|
4
5
|
* behaviors (redirect handling, proxy and cookie handling). Concrete clients
|
|
5
6
|
* implement only the low-level network call in `fetch`.
|
|
6
7
|
*/
|
|
7
8
|
export class BaseHttpClient {
|
|
9
|
+
log;
|
|
10
|
+
constructor(log) {
|
|
11
|
+
this.log = log ?? defaultLog;
|
|
12
|
+
}
|
|
8
13
|
async applyCookies(request, cookieJar) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
14
|
+
try {
|
|
15
|
+
const cookies = (await cookieJar.getCookies(request.url))
|
|
16
|
+
.map((x) => x.cookieString().trim())
|
|
17
|
+
.filter(Boolean);
|
|
18
|
+
if (cookies?.length > 0) {
|
|
19
|
+
request.headers.set('cookie', cookies.join('; '));
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
catch (e) {
|
|
23
|
+
this.log.warning(`Failed to get cookies for URL "${request.url}": ${e.message}`);
|
|
12
24
|
}
|
|
13
25
|
return request;
|
|
14
26
|
}
|
|
15
27
|
async setCookies(response, cookieJar) {
|
|
16
28
|
const setCookieHeaders = response.headers.getSetCookie();
|
|
17
|
-
|
|
29
|
+
for (const header of setCookieHeaders) {
|
|
30
|
+
try {
|
|
31
|
+
await cookieJar.setCookie(header, response.url);
|
|
32
|
+
}
|
|
33
|
+
catch (e) {
|
|
34
|
+
this.log.warning(`Failed to set cookie for URL "${response.url}": ${e.message}`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
18
37
|
}
|
|
19
38
|
resolveRequestContext(options) {
|
|
20
39
|
const proxyUrl = options?.proxyUrl ?? options?.session?.proxyInfo?.url;
|
package/base-http-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-http-client.js","sourceRoot":"","sources":["../src/base-http-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"base-http-client.js","sourceRoot":"","sources":["../src/base-http-client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crawlee/http-client",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.29",
|
|
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": ">=22.0.0"
|
|
@@ -47,7 +47,8 @@
|
|
|
47
47
|
"access": "public"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@
|
|
50
|
+
"@apify/log": "^2.5.32",
|
|
51
|
+
"@crawlee/types": "4.0.0-beta.29",
|
|
51
52
|
"tough-cookie": "^6.0.0"
|
|
52
53
|
},
|
|
53
54
|
"lerna": {
|
|
@@ -57,5 +58,5 @@
|
|
|
57
58
|
}
|
|
58
59
|
}
|
|
59
60
|
},
|
|
60
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "827042195782864fca26dcdf809aec4b4aa6bd06"
|
|
61
62
|
}
|