n8n-nodes-crawlbrulee 0.0.1
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/LICENSE +21 -0
- package/README.md +116 -0
- package/dist/credentials/CrawlbruleeApi.credentials.js +52 -0
- package/dist/credentials/crawlbrulee.svg +1 -0
- package/dist/nodes/Crawlbrulee/Crawlbrulee.node.js +162 -0
- package/dist/nodes/Crawlbrulee/Crawlbrulee.node.json +10 -0
- package/dist/nodes/Crawlbrulee/binary.js +34 -0
- package/dist/nodes/Crawlbrulee/builders/map.js +35 -0
- package/dist/nodes/Crawlbrulee/builders/scrape.js +144 -0
- package/dist/nodes/Crawlbrulee/crawlbrulee.svg +1 -0
- package/dist/nodes/Crawlbrulee/descriptions/account.js +25 -0
- package/dist/nodes/Crawlbrulee/descriptions/index.js +26 -0
- package/dist/nodes/Crawlbrulee/descriptions/map.js +97 -0
- package/dist/nodes/Crawlbrulee/descriptions/scrape.js +267 -0
- package/dist/nodes/Crawlbrulee/descriptions/shared.js +48 -0
- package/dist/nodes/Crawlbrulee/transport/errors.js +59 -0
- package/dist/nodes/Crawlbrulee/transport/request.js +29 -0
- package/dist/nodes/CrawlbruleeTrigger/CrawlbruleeTrigger.node.js +124 -0
- package/dist/nodes/CrawlbruleeTrigger/CrawlbruleeTrigger.node.json +10 -0
- package/dist/nodes/CrawlbruleeTrigger/crawlbrulee.svg +1 -0
- package/dist/nodes/CrawlbruleeTrigger/signature.js +81 -0
- package/package.json +72 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128" viewBox="0 0 128 128"><image width="128" height="128" xlink:href="data:image/png;base64,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"/></svg>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.accountOperations = void 0;
|
|
4
|
+
exports.accountOperations = {
|
|
5
|
+
displayName: 'Operation',
|
|
6
|
+
name: 'operation',
|
|
7
|
+
type: 'options',
|
|
8
|
+
noDataExpression: true,
|
|
9
|
+
displayOptions: { show: { resource: ['account'] } },
|
|
10
|
+
options: [
|
|
11
|
+
{
|
|
12
|
+
name: 'Get Account Info',
|
|
13
|
+
value: 'whoami',
|
|
14
|
+
action: 'Get account info',
|
|
15
|
+
description: 'The organization behind the API key: its name, the token name and a preview',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Get Credit Usage',
|
|
19
|
+
value: 'getUsage',
|
|
20
|
+
action: 'Get credit usage',
|
|
21
|
+
description: 'Credits used and left in the current billing cycle, plus concurrency and the reset date',
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
default: 'getUsage',
|
|
25
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.crawlbruleeProperties = exports.resourceProperty = void 0;
|
|
4
|
+
const account_1 = require("./account");
|
|
5
|
+
const map_1 = require("./map");
|
|
6
|
+
const scrape_1 = require("./scrape");
|
|
7
|
+
exports.resourceProperty = {
|
|
8
|
+
displayName: 'Resource',
|
|
9
|
+
name: 'resource',
|
|
10
|
+
type: 'options',
|
|
11
|
+
noDataExpression: true,
|
|
12
|
+
options: [
|
|
13
|
+
{ name: 'Account', value: 'account' },
|
|
14
|
+
{ name: 'Map', value: 'map' },
|
|
15
|
+
{ name: 'Scrape', value: 'scrape' },
|
|
16
|
+
],
|
|
17
|
+
default: 'scrape',
|
|
18
|
+
};
|
|
19
|
+
exports.crawlbruleeProperties = [
|
|
20
|
+
exports.resourceProperty,
|
|
21
|
+
scrape_1.scrapeOperations,
|
|
22
|
+
map_1.mapOperations,
|
|
23
|
+
account_1.accountOperations,
|
|
24
|
+
...scrape_1.scrapeFields,
|
|
25
|
+
...map_1.mapFields,
|
|
26
|
+
];
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mapFields = exports.mapOperations = void 0;
|
|
4
|
+
const shared_1 = require("./shared");
|
|
5
|
+
exports.mapOperations = {
|
|
6
|
+
displayName: 'Operation',
|
|
7
|
+
name: 'operation',
|
|
8
|
+
type: 'options',
|
|
9
|
+
noDataExpression: true,
|
|
10
|
+
displayOptions: { show: { resource: ['map'] } },
|
|
11
|
+
options: [
|
|
12
|
+
{
|
|
13
|
+
name: 'Map Website',
|
|
14
|
+
value: 'map',
|
|
15
|
+
action: 'Map website',
|
|
16
|
+
description: 'Discover the URLs of a site from its sitemap and homepage links',
|
|
17
|
+
},
|
|
18
|
+
],
|
|
19
|
+
default: 'map',
|
|
20
|
+
};
|
|
21
|
+
exports.mapFields = [
|
|
22
|
+
{
|
|
23
|
+
displayName: 'URL',
|
|
24
|
+
name: 'url',
|
|
25
|
+
type: 'string',
|
|
26
|
+
required: true,
|
|
27
|
+
default: '',
|
|
28
|
+
placeholder: 'e.g. https://example.com',
|
|
29
|
+
description: 'The site to map',
|
|
30
|
+
displayOptions: { show: { resource: ['map'], operation: ['map'] } },
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
displayName: 'Options',
|
|
34
|
+
name: 'options',
|
|
35
|
+
type: 'collection',
|
|
36
|
+
placeholder: 'Add Option',
|
|
37
|
+
default: {},
|
|
38
|
+
displayOptions: { show: { resource: ['map'], operation: ['map'] } },
|
|
39
|
+
options: [
|
|
40
|
+
(0, shared_1.cacheMaxAgeOption)('7 days'),
|
|
41
|
+
shared_1.countryOption,
|
|
42
|
+
{
|
|
43
|
+
displayName: 'External',
|
|
44
|
+
name: 'external',
|
|
45
|
+
type: 'boolean',
|
|
46
|
+
default: true,
|
|
47
|
+
description: 'Whether to include links to other domains',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
displayName: 'Internal',
|
|
51
|
+
name: 'internal',
|
|
52
|
+
type: 'boolean',
|
|
53
|
+
default: true,
|
|
54
|
+
description: 'Whether to include links on the same domain',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
displayName: 'Internal Subdomains',
|
|
58
|
+
name: 'internalSubdomains',
|
|
59
|
+
type: 'boolean',
|
|
60
|
+
default: true,
|
|
61
|
+
description: 'Whether to include links to subdomains of the site',
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
displayName: 'Limit',
|
|
65
|
+
name: 'limit',
|
|
66
|
+
type: 'number',
|
|
67
|
+
typeOptions: { minValue: 1, maxValue: 10000 },
|
|
68
|
+
default: 50,
|
|
69
|
+
description: 'Max number of results to return',
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
displayName: 'Max URLs',
|
|
73
|
+
name: 'maxUrls',
|
|
74
|
+
type: 'number',
|
|
75
|
+
typeOptions: { minValue: 1, maxValue: 100000 },
|
|
76
|
+
default: 5000,
|
|
77
|
+
description: 'Stop discovery after this many URLs. A smaller value is a cheaper, faster map.',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
displayName: 'Page',
|
|
81
|
+
name: 'page',
|
|
82
|
+
type: 'number',
|
|
83
|
+
typeOptions: { minValue: 1 },
|
|
84
|
+
default: 1,
|
|
85
|
+
description: '1-based page of results to return',
|
|
86
|
+
},
|
|
87
|
+
shared_1.proxyOption,
|
|
88
|
+
{
|
|
89
|
+
displayName: 'Sitemap Only',
|
|
90
|
+
name: 'sitemapOnly',
|
|
91
|
+
type: 'boolean',
|
|
92
|
+
default: false,
|
|
93
|
+
description: 'Whether to read only sitemap.xml and skip homepage link extraction',
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
},
|
|
97
|
+
];
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.scrapeFields = exports.scrapeOperations = void 0;
|
|
4
|
+
const shared_1 = require("./shared");
|
|
5
|
+
const resourceShow = { resource: ['scrape'] };
|
|
6
|
+
const urlShow = { resource: ['scrape'], operation: ['scrape', 'scrapeAsync'] };
|
|
7
|
+
const screenshotShow = { ...urlShow, screenshotType: ['full_page', 'viewport'] };
|
|
8
|
+
const jobShow = { resource: ['scrape'], operation: ['getScrapeStatus', 'getScrapeResult'] };
|
|
9
|
+
exports.scrapeOperations = {
|
|
10
|
+
displayName: 'Operation',
|
|
11
|
+
name: 'operation',
|
|
12
|
+
type: 'options',
|
|
13
|
+
noDataExpression: true,
|
|
14
|
+
displayOptions: { show: resourceShow },
|
|
15
|
+
options: [
|
|
16
|
+
{
|
|
17
|
+
name: 'Get Scrape Result',
|
|
18
|
+
value: 'getScrapeResult',
|
|
19
|
+
action: 'Get scrape result',
|
|
20
|
+
description: 'Fetch the content of a finished async scrape',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
name: 'Get Scrape Status',
|
|
24
|
+
value: 'getScrapeStatus',
|
|
25
|
+
action: 'Get scrape status',
|
|
26
|
+
description: 'Check whether an async scrape is pending, running, done or failed',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: 'Scrape URL',
|
|
30
|
+
value: 'scrape',
|
|
31
|
+
action: 'Scrape URL',
|
|
32
|
+
description: 'Fetch one URL and return the requested content',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
name: 'Scrape URL (Async)',
|
|
36
|
+
value: 'scrapeAsync',
|
|
37
|
+
action: 'Scrape URL async',
|
|
38
|
+
description: 'Submit a background scrape job and return its job ID. Pair it with the crawlbrulee Trigger.',
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
default: 'scrape',
|
|
42
|
+
};
|
|
43
|
+
exports.scrapeFields = [
|
|
44
|
+
{
|
|
45
|
+
displayName: 'Job ID',
|
|
46
|
+
name: 'jobId',
|
|
47
|
+
type: 'string',
|
|
48
|
+
required: true,
|
|
49
|
+
default: '',
|
|
50
|
+
description: 'The job ID returned by Scrape URL (Async)',
|
|
51
|
+
displayOptions: { show: jobShow },
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
displayName: 'URL',
|
|
55
|
+
name: 'url',
|
|
56
|
+
type: 'string',
|
|
57
|
+
required: true,
|
|
58
|
+
default: '',
|
|
59
|
+
placeholder: 'e.g. https://example.com',
|
|
60
|
+
description: 'The URL to scrape',
|
|
61
|
+
displayOptions: { show: urlShow },
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
displayName: 'Extract',
|
|
65
|
+
name: 'extract',
|
|
66
|
+
type: 'multiOptions',
|
|
67
|
+
options: [
|
|
68
|
+
{ name: 'Cleaned HTML', value: 'cleaned_html', description: 'The main page content as HTML' },
|
|
69
|
+
{ name: 'Images', value: 'images', description: 'Inline images found on the page' },
|
|
70
|
+
{ name: 'Links', value: 'links', description: 'Links found on the page' },
|
|
71
|
+
{ name: 'Markdown', value: 'markdown', description: 'The page as clean Markdown' },
|
|
72
|
+
{
|
|
73
|
+
name: 'Metadata',
|
|
74
|
+
value: 'metadata',
|
|
75
|
+
description: 'Title, description and OG/Twitter tags',
|
|
76
|
+
},
|
|
77
|
+
{ name: 'Raw HTML', value: 'raw_html', description: 'The page HTML exactly as it arrived' },
|
|
78
|
+
],
|
|
79
|
+
default: ['cleaned_html', 'metadata'],
|
|
80
|
+
description: 'Which outputs to return',
|
|
81
|
+
displayOptions: { show: urlShow },
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
displayName: 'Screenshot',
|
|
85
|
+
name: 'screenshotType',
|
|
86
|
+
type: 'options',
|
|
87
|
+
options: [
|
|
88
|
+
{ name: 'Full Page', value: 'full_page', description: 'The whole scrollable page' },
|
|
89
|
+
{ name: 'None', value: 'none', description: 'No screenshot' },
|
|
90
|
+
{ name: 'Viewport', value: 'viewport', description: 'The visible part of the page' },
|
|
91
|
+
],
|
|
92
|
+
default: 'none',
|
|
93
|
+
description: 'Capture a screenshot. Uses a headless browser; adds latency and credits.',
|
|
94
|
+
displayOptions: { show: urlShow },
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
displayName: 'Screenshot Options',
|
|
98
|
+
name: 'screenshotOptions',
|
|
99
|
+
type: 'collection',
|
|
100
|
+
placeholder: 'Add Option',
|
|
101
|
+
default: {},
|
|
102
|
+
displayOptions: { show: screenshotShow },
|
|
103
|
+
options: [
|
|
104
|
+
{
|
|
105
|
+
displayName: 'Actions Before',
|
|
106
|
+
name: 'actionsBefore',
|
|
107
|
+
type: 'fixedCollection',
|
|
108
|
+
typeOptions: { multipleValues: true },
|
|
109
|
+
placeholder: 'Add Action',
|
|
110
|
+
default: {},
|
|
111
|
+
description: 'Waits and scrolls performed before the capture, at most 5',
|
|
112
|
+
options: [
|
|
113
|
+
{
|
|
114
|
+
name: 'action',
|
|
115
|
+
displayName: 'Action',
|
|
116
|
+
values: [
|
|
117
|
+
{
|
|
118
|
+
displayName: 'Type',
|
|
119
|
+
name: 'type',
|
|
120
|
+
type: 'options',
|
|
121
|
+
options: [
|
|
122
|
+
{
|
|
123
|
+
name: 'Scroll',
|
|
124
|
+
value: 'scroll',
|
|
125
|
+
description: 'Scroll by a number of pixels. Negative scrolls up.',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
name: 'Wait',
|
|
129
|
+
value: 'wait',
|
|
130
|
+
description: 'Pause for a number of milliseconds',
|
|
131
|
+
},
|
|
132
|
+
],
|
|
133
|
+
default: 'wait',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
displayName: 'Value',
|
|
137
|
+
name: 'value',
|
|
138
|
+
type: 'number',
|
|
139
|
+
default: 1000,
|
|
140
|
+
description: 'Milliseconds for Wait, pixels for Scroll',
|
|
141
|
+
},
|
|
142
|
+
],
|
|
143
|
+
},
|
|
144
|
+
],
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
displayName: 'Device Mode',
|
|
148
|
+
name: 'deviceMode',
|
|
149
|
+
type: 'options',
|
|
150
|
+
options: [
|
|
151
|
+
{ name: 'Desktop', value: 'desktop' },
|
|
152
|
+
{ name: 'Mobile', value: 'mobile' },
|
|
153
|
+
],
|
|
154
|
+
default: 'desktop',
|
|
155
|
+
description: 'Emulate a desktop or a mobile browser',
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
displayName: 'Device Scale Factor',
|
|
159
|
+
name: 'deviceScaleFactor',
|
|
160
|
+
type: 'number',
|
|
161
|
+
typeOptions: { minValue: 1, maxValue: 3 },
|
|
162
|
+
default: 1,
|
|
163
|
+
description: 'Device pixel ratio, e.g. 2 for retina. Needs Width and Height.',
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
displayName: 'Height',
|
|
167
|
+
name: 'height',
|
|
168
|
+
type: 'number',
|
|
169
|
+
typeOptions: { minValue: 16, maxValue: 10000 },
|
|
170
|
+
default: 800,
|
|
171
|
+
description: 'Viewport height in pixels. Set together with Width.',
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
displayName: 'Slice Height',
|
|
175
|
+
name: 'sliceHeight',
|
|
176
|
+
type: 'number',
|
|
177
|
+
typeOptions: { minValue: 500 },
|
|
178
|
+
default: 1000,
|
|
179
|
+
description: 'Cut the screenshot into horizontal tiles of this height in pixels, at least 500',
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
displayName: 'Width',
|
|
183
|
+
name: 'width',
|
|
184
|
+
type: 'number',
|
|
185
|
+
typeOptions: { minValue: 16, maxValue: 10000 },
|
|
186
|
+
default: 1280,
|
|
187
|
+
description: 'Viewport width in pixels. Set together with Height.',
|
|
188
|
+
},
|
|
189
|
+
],
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
displayName: 'Download Screenshot',
|
|
193
|
+
name: 'downloadScreenshot',
|
|
194
|
+
type: 'boolean',
|
|
195
|
+
default: false,
|
|
196
|
+
description: 'Whether to download the screenshot (and its slices) into binary data on the item',
|
|
197
|
+
displayOptions: {
|
|
198
|
+
show: {
|
|
199
|
+
resource: ['scrape'],
|
|
200
|
+
operation: ['scrape'],
|
|
201
|
+
screenshotType: ['full_page', 'viewport'],
|
|
202
|
+
},
|
|
203
|
+
},
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
displayName: 'Options',
|
|
207
|
+
name: 'options',
|
|
208
|
+
type: 'collection',
|
|
209
|
+
placeholder: 'Add Option',
|
|
210
|
+
default: {},
|
|
211
|
+
displayOptions: { show: urlShow },
|
|
212
|
+
options: [
|
|
213
|
+
(0, shared_1.cacheMaxAgeOption)('2 days'),
|
|
214
|
+
shared_1.countryOption,
|
|
215
|
+
{
|
|
216
|
+
displayName: 'Exclude Selectors',
|
|
217
|
+
name: 'excludeSelectors',
|
|
218
|
+
type: 'string',
|
|
219
|
+
typeOptions: { multipleValues: true, multipleValueButtonText: 'Add Selector' },
|
|
220
|
+
default: [],
|
|
221
|
+
placeholder: 'e.g. .cookie-banner',
|
|
222
|
+
description: 'CSS selectors removed before anything is extracted. Sending any skips the cache.',
|
|
223
|
+
},
|
|
224
|
+
shared_1.localeOption,
|
|
225
|
+
shared_1.proxyOption,
|
|
226
|
+
{
|
|
227
|
+
displayName: 'Remove Ads & Popups',
|
|
228
|
+
name: 'removeAdsAndPopups',
|
|
229
|
+
type: 'boolean',
|
|
230
|
+
default: true,
|
|
231
|
+
description: 'Whether to remove ads, cookie banners, consent dialogs and chat widgets before extracting',
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
displayName: 'Require JS',
|
|
235
|
+
name: 'requireJs',
|
|
236
|
+
type: 'boolean',
|
|
237
|
+
default: false,
|
|
238
|
+
description: 'Whether to render JavaScript in a headless browser first. Adds latency and credits.',
|
|
239
|
+
},
|
|
240
|
+
],
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
displayName: 'Webhook URL',
|
|
244
|
+
name: 'webhookUrl',
|
|
245
|
+
type: 'string',
|
|
246
|
+
default: '',
|
|
247
|
+
placeholder: 'e.g. https://your-n8n.example/webhook/…',
|
|
248
|
+
description: 'Receives a signed scrape.complete POST when the job finishes. Paste the URL shown by a crawlbrulee Trigger node.',
|
|
249
|
+
displayOptions: { show: { resource: ['scrape'], operation: ['scrapeAsync'] } },
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
displayName: 'Webhook Metadata',
|
|
253
|
+
name: 'webhookMetadata',
|
|
254
|
+
type: 'json',
|
|
255
|
+
default: '',
|
|
256
|
+
description: 'JSON object echoed back in the webhook as data.metadata, up to 2048 bytes',
|
|
257
|
+
displayOptions: { show: { resource: ['scrape'], operation: ['scrapeAsync'] } },
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
displayName: 'Download Screenshot',
|
|
261
|
+
name: 'downloadScreenshot',
|
|
262
|
+
type: 'boolean',
|
|
263
|
+
default: false,
|
|
264
|
+
description: 'Whether to download the screenshot (and its slices) into binary data when the result has one',
|
|
265
|
+
displayOptions: { show: { resource: ['scrape'], operation: ['getScrapeResult'] } },
|
|
266
|
+
},
|
|
267
|
+
];
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.localeOption = exports.countryOption = exports.cacheMaxAgeOption = exports.proxyOption = void 0;
|
|
4
|
+
exports.proxyOption = {
|
|
5
|
+
displayName: 'Proxy',
|
|
6
|
+
name: 'proxy',
|
|
7
|
+
type: 'options',
|
|
8
|
+
options: [
|
|
9
|
+
{
|
|
10
|
+
name: 'Advanced',
|
|
11
|
+
value: 'advanced',
|
|
12
|
+
description: 'Enhanced proxy tier with a higher success rate on hard sites',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
name: 'Auto',
|
|
16
|
+
value: 'auto',
|
|
17
|
+
description: 'Tries Basic first and moves to Advanced on failure. You are billed at the tier that delivered.',
|
|
18
|
+
},
|
|
19
|
+
{ name: 'Basic', value: 'basic', description: 'Datacenter proxy tier, lowest cost' },
|
|
20
|
+
],
|
|
21
|
+
default: 'auto',
|
|
22
|
+
description: 'Proxy tier used to fetch the page',
|
|
23
|
+
};
|
|
24
|
+
const cacheMaxAgeOption = (defaultText) => ({
|
|
25
|
+
displayName: 'Cache Max Age',
|
|
26
|
+
name: 'cacheMaxAge',
|
|
27
|
+
type: 'string',
|
|
28
|
+
default: '',
|
|
29
|
+
placeholder: 'e.g. 3600',
|
|
30
|
+
description: `Seconds, or an ISO-8601 cutoff. Cached results older than this are skipped. Default ${defaultText}.`,
|
|
31
|
+
});
|
|
32
|
+
exports.cacheMaxAgeOption = cacheMaxAgeOption;
|
|
33
|
+
exports.countryOption = {
|
|
34
|
+
displayName: 'Country',
|
|
35
|
+
name: 'country',
|
|
36
|
+
type: 'string',
|
|
37
|
+
default: '',
|
|
38
|
+
placeholder: 'e.g. DE',
|
|
39
|
+
description: 'ISO 3166-1 alpha-2 country code to fetch from',
|
|
40
|
+
};
|
|
41
|
+
exports.localeOption = {
|
|
42
|
+
displayName: 'Locale',
|
|
43
|
+
name: 'locale',
|
|
44
|
+
type: 'string',
|
|
45
|
+
default: '',
|
|
46
|
+
placeholder: 'e.g. en-US',
|
|
47
|
+
description: 'BCP-47 locale sent as Accept-Language and used by the browser when rendering JavaScript',
|
|
48
|
+
};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.describeApiError = describeApiError;
|
|
4
|
+
exports.toNodeApiError = toNodeApiError;
|
|
5
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
6
|
+
const KEY_REJECTED = 'crawlbrulee rejected the API key. Check the key on the credential.';
|
|
7
|
+
const SCRAPE_HINT = 'The Advanced proxy tier has a higher success rate; enable Require JS for JavaScript-rendered content.';
|
|
8
|
+
function isApiErrorBody(body) {
|
|
9
|
+
return (typeof body === 'object' &&
|
|
10
|
+
body !== null &&
|
|
11
|
+
typeof body.name === 'string' &&
|
|
12
|
+
typeof body.message === 'string');
|
|
13
|
+
}
|
|
14
|
+
function describeApiError(status, body) {
|
|
15
|
+
var _a;
|
|
16
|
+
const description = typeof body === 'string' ? body : JSON.stringify(body !== null && body !== void 0 ? body : null);
|
|
17
|
+
if (!isApiErrorBody(body)) {
|
|
18
|
+
return { message: `crawlbrulee returned HTTP ${status}.`, description };
|
|
19
|
+
}
|
|
20
|
+
const details = ((_a = body.details) !== null && _a !== void 0 ? _a : {});
|
|
21
|
+
switch (body.name) {
|
|
22
|
+
case 'invalid_credentials':
|
|
23
|
+
case 'access_denied':
|
|
24
|
+
return { message: KEY_REJECTED, description };
|
|
25
|
+
case 'antibot_blocked':
|
|
26
|
+
return {
|
|
27
|
+
message: `The site's anti-bot protection blocked this scrape. ${body.message}`.trim(),
|
|
28
|
+
description,
|
|
29
|
+
};
|
|
30
|
+
case 'too_many_requests': {
|
|
31
|
+
const retry = typeof details.retry_after_ms === 'number'
|
|
32
|
+
? ` Retry after ${details.retry_after_ms} ms.`
|
|
33
|
+
: '';
|
|
34
|
+
return { message: `crawlbrulee rate limit reached.${retry}`, description };
|
|
35
|
+
}
|
|
36
|
+
case 'usage_allocation_error':
|
|
37
|
+
if (details.reason === 'credit_limit')
|
|
38
|
+
return { message: 'Out of credits.', description };
|
|
39
|
+
if (details.reason === 'concurrency_limit')
|
|
40
|
+
return { message: 'Concurrency limit reached.', description };
|
|
41
|
+
return { message: body.message, description };
|
|
42
|
+
case 'scrape_error':
|
|
43
|
+
return { message: `${body.message.replace(/[.\s]*$/, '')}. ${SCRAPE_HINT}`, description };
|
|
44
|
+
default:
|
|
45
|
+
return { message: body.message || `crawlbrulee returned HTTP ${status}.`, description };
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function toNodeApiError(node, status, body, itemIndex) {
|
|
49
|
+
const { message, description } = describeApiError(status, body);
|
|
50
|
+
const errorResponse = isApiErrorBody(body)
|
|
51
|
+
? body
|
|
52
|
+
: { status, body: typeof body === 'string' ? body : JSON.stringify(body !== null && body !== void 0 ? body : null) };
|
|
53
|
+
return new n8n_workflow_1.NodeApiError(node, errorResponse, {
|
|
54
|
+
message,
|
|
55
|
+
description,
|
|
56
|
+
httpCode: String(status),
|
|
57
|
+
itemIndex,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.USER_AGENT = void 0;
|
|
4
|
+
exports.crawlbruleeRequest = crawlbruleeRequest;
|
|
5
|
+
const errors_1 = require("./errors");
|
|
6
|
+
exports.USER_AGENT = 'n8n-nodes-crawlbrulee/0.0.1';
|
|
7
|
+
function stripTrailingSlash(url) {
|
|
8
|
+
return url.replace(/\/+$/, '');
|
|
9
|
+
}
|
|
10
|
+
async function crawlbruleeRequest(args) {
|
|
11
|
+
var _a;
|
|
12
|
+
const credentials = (await this.getCredentials('crawlbruleeApi'));
|
|
13
|
+
const baseUrl = stripTrailingSlash(((_a = credentials.baseUrl) !== null && _a !== void 0 ? _a : '').trim() || 'https://api.crawlbrulee.com');
|
|
14
|
+
const options = {
|
|
15
|
+
method: args.method,
|
|
16
|
+
url: `${baseUrl}${args.path}`,
|
|
17
|
+
json: true,
|
|
18
|
+
returnFullResponse: true,
|
|
19
|
+
ignoreHttpStatusErrors: true,
|
|
20
|
+
headers: { 'User-Agent': exports.USER_AGENT },
|
|
21
|
+
};
|
|
22
|
+
if (args.body !== undefined)
|
|
23
|
+
options.body = args.body;
|
|
24
|
+
const response = (await this.helpers.httpRequestWithAuthentication.call(this, 'crawlbruleeApi', options));
|
|
25
|
+
if (response.statusCode < 200 || response.statusCode >= 300) {
|
|
26
|
+
throw (0, errors_1.toNodeApiError)(this.getNode(), response.statusCode, response.body, args.itemIndex);
|
|
27
|
+
}
|
|
28
|
+
return response.body;
|
|
29
|
+
}
|