n8n-nodes-crawl4ai-plus 2.0.9 → 3.0.0
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 +23 -23
- package/README.md +129 -41
- package/dist/credentials/Crawl4aiApi.credentials.js +2 -34
- package/dist/credentials/Crawl4aiApi.credentials.js.map +1 -1
- package/dist/nodes/Crawl4aiPlusBasicCrawler/actions/crawlMultipleUrls.operation.js +1230 -30
- package/dist/nodes/Crawl4aiPlusBasicCrawler/actions/crawlMultipleUrls.operation.js.map +1 -1
- package/dist/nodes/Crawl4aiPlusBasicCrawler/actions/crawlSingleUrl.operation.js +715 -9
- package/dist/nodes/Crawl4aiPlusBasicCrawler/actions/crawlSingleUrl.operation.js.map +1 -1
- package/dist/nodes/Crawl4aiPlusBasicCrawler/actions/discoverLinks.operation.d.ts +4 -0
- package/dist/nodes/Crawl4aiPlusBasicCrawler/actions/discoverLinks.operation.js +495 -0
- package/dist/nodes/Crawl4aiPlusBasicCrawler/actions/discoverLinks.operation.js.map +1 -0
- package/dist/nodes/Crawl4aiPlusBasicCrawler/actions/operations.js +9 -0
- package/dist/nodes/Crawl4aiPlusBasicCrawler/actions/operations.js.map +1 -1
- package/dist/nodes/Crawl4aiPlusBasicCrawler/actions/processRawHtml.operation.js +1 -1
- package/dist/nodes/Crawl4aiPlusBasicCrawler/actions/processRawHtml.operation.js.map +1 -1
- package/dist/nodes/Crawl4aiPlusBasicCrawler/helpers/apiClient.d.ts +4 -1
- package/dist/nodes/Crawl4aiPlusBasicCrawler/helpers/apiClient.js +94 -60
- package/dist/nodes/Crawl4aiPlusBasicCrawler/helpers/apiClient.js.map +1 -1
- package/dist/nodes/Crawl4aiPlusBasicCrawler/helpers/formatters.d.ts +8 -1
- package/dist/nodes/Crawl4aiPlusBasicCrawler/helpers/formatters.js +49 -12
- package/dist/nodes/Crawl4aiPlusBasicCrawler/helpers/formatters.js.map +1 -1
- package/dist/nodes/Crawl4aiPlusBasicCrawler/helpers/interfaces.d.ts +38 -5
- package/dist/nodes/Crawl4aiPlusBasicCrawler/helpers/utils.d.ts +13 -0
- package/dist/nodes/Crawl4aiPlusBasicCrawler/helpers/utils.js +270 -0
- package/dist/nodes/Crawl4aiPlusBasicCrawler/helpers/utils.js.map +1 -1
- package/dist/nodes/Crawl4aiPlusContentExtractor/actions/cosineExtractor.operation.d.ts +4 -0
- package/dist/nodes/Crawl4aiPlusContentExtractor/actions/cosineExtractor.operation.js +445 -0
- package/dist/nodes/Crawl4aiPlusContentExtractor/actions/cosineExtractor.operation.js.map +1 -0
- package/dist/nodes/Crawl4aiPlusContentExtractor/actions/cssExtractor.operation.js +108 -8
- package/dist/nodes/Crawl4aiPlusContentExtractor/actions/cssExtractor.operation.js.map +1 -1
- package/dist/nodes/Crawl4aiPlusContentExtractor/actions/jsonExtractor.operation.js +49 -9
- package/dist/nodes/Crawl4aiPlusContentExtractor/actions/jsonExtractor.operation.js.map +1 -1
- package/dist/nodes/Crawl4aiPlusContentExtractor/actions/llmExtractor.operation.js +134 -17
- package/dist/nodes/Crawl4aiPlusContentExtractor/actions/llmExtractor.operation.js.map +1 -1
- package/dist/nodes/Crawl4aiPlusContentExtractor/actions/operations.js +27 -9
- package/dist/nodes/Crawl4aiPlusContentExtractor/actions/operations.js.map +1 -1
- package/dist/nodes/Crawl4aiPlusContentExtractor/actions/regexExtractor.operation.js +206 -9
- package/dist/nodes/Crawl4aiPlusContentExtractor/actions/regexExtractor.operation.js.map +1 -1
- package/dist/nodes/Crawl4aiPlusContentExtractor/actions/seoExtractor.operation.d.ts +4 -0
- package/dist/nodes/Crawl4aiPlusContentExtractor/actions/seoExtractor.operation.js +376 -0
- package/dist/nodes/Crawl4aiPlusContentExtractor/actions/seoExtractor.operation.js.map +1 -0
- package/dist/nodes/Crawl4aiPlusContentExtractor/helpers/utils.d.ts +4 -2
- package/dist/nodes/Crawl4aiPlusContentExtractor/helpers/utils.js +53 -16
- package/dist/nodes/Crawl4aiPlusContentExtractor/helpers/utils.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/index.js +11 -11
- package/package.json +1 -1
|
@@ -0,0 +1,445 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.description = void 0;
|
|
4
|
+
exports.execute = execute;
|
|
5
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
6
|
+
const utils_1 = require("../helpers/utils");
|
|
7
|
+
const formatters_1 = require("../../Crawl4aiPlusBasicCrawler/helpers/formatters");
|
|
8
|
+
exports.description = [
|
|
9
|
+
{
|
|
10
|
+
displayName: 'URL',
|
|
11
|
+
name: 'url',
|
|
12
|
+
type: 'string',
|
|
13
|
+
required: true,
|
|
14
|
+
default: '',
|
|
15
|
+
placeholder: 'https://example.com/reviews',
|
|
16
|
+
description: 'The URL to extract content from using semantic similarity clustering',
|
|
17
|
+
displayOptions: {
|
|
18
|
+
show: {
|
|
19
|
+
operation: ['cosineExtractor'],
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
displayName: 'Semantic Filter',
|
|
25
|
+
name: 'semanticFilter',
|
|
26
|
+
type: 'string',
|
|
27
|
+
required: true,
|
|
28
|
+
default: '',
|
|
29
|
+
placeholder: 'product reviews, user feedback',
|
|
30
|
+
description: 'Keywords or topic to filter content semantically. Example: "pricing information", "technical specifications", "customer testimonials".',
|
|
31
|
+
displayOptions: {
|
|
32
|
+
show: {
|
|
33
|
+
operation: ['cosineExtractor'],
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
displayName: 'Browser Options',
|
|
39
|
+
name: 'browserOptions',
|
|
40
|
+
type: 'collection',
|
|
41
|
+
placeholder: 'Add Option',
|
|
42
|
+
default: {},
|
|
43
|
+
displayOptions: {
|
|
44
|
+
show: {
|
|
45
|
+
operation: ['cosineExtractor'],
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
options: [
|
|
49
|
+
{
|
|
50
|
+
displayName: 'Enable Stealth Mode',
|
|
51
|
+
name: 'enableStealth',
|
|
52
|
+
type: 'boolean',
|
|
53
|
+
default: false,
|
|
54
|
+
description: 'Whether to enable anti-detection features to bypass bot detection systems',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
displayName: 'Extra Browser Arguments',
|
|
58
|
+
name: 'extraArgs',
|
|
59
|
+
type: 'fixedCollection',
|
|
60
|
+
default: { args: [] },
|
|
61
|
+
typeOptions: {
|
|
62
|
+
multipleValues: true,
|
|
63
|
+
},
|
|
64
|
+
options: [
|
|
65
|
+
{
|
|
66
|
+
name: 'args',
|
|
67
|
+
displayName: 'Argument',
|
|
68
|
+
values: [
|
|
69
|
+
{
|
|
70
|
+
displayName: 'Value',
|
|
71
|
+
name: 'value',
|
|
72
|
+
type: 'string',
|
|
73
|
+
default: '',
|
|
74
|
+
placeholder: '--disable-dev-shm-usage',
|
|
75
|
+
description: 'Chromium argument (e.g., --disable-blink-features=AutomationControlled)',
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
},
|
|
79
|
+
],
|
|
80
|
+
description: 'Additional Chromium arguments for fine-tuned browser control. Common examples: --disable-dev-shm-usage, --disable-gpu.',
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
displayName: 'Headless Mode',
|
|
84
|
+
name: 'headless',
|
|
85
|
+
type: 'boolean',
|
|
86
|
+
default: true,
|
|
87
|
+
description: 'Whether to run the browser in headless mode',
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
displayName: 'JavaScript Code',
|
|
91
|
+
name: 'jsCode',
|
|
92
|
+
type: 'string',
|
|
93
|
+
typeOptions: {
|
|
94
|
+
rows: 4,
|
|
95
|
+
},
|
|
96
|
+
default: '',
|
|
97
|
+
placeholder: "document.querySelector('.load-more').click();",
|
|
98
|
+
description: 'JavaScript code to execute on the page before extraction',
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
displayName: 'User Agent',
|
|
102
|
+
name: 'userAgent',
|
|
103
|
+
type: 'string',
|
|
104
|
+
default: '',
|
|
105
|
+
placeholder: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)...',
|
|
106
|
+
description: 'Custom user agent string. Leave empty for default.',
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
displayName: 'Viewport Height',
|
|
110
|
+
name: 'viewportHeight',
|
|
111
|
+
type: 'number',
|
|
112
|
+
default: 800,
|
|
113
|
+
description: 'Browser viewport height in pixels',
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
displayName: 'Viewport Width',
|
|
117
|
+
name: 'viewportWidth',
|
|
118
|
+
type: 'number',
|
|
119
|
+
default: 1280,
|
|
120
|
+
description: 'Browser viewport width in pixels',
|
|
121
|
+
},
|
|
122
|
+
],
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
displayName: 'Session & Authentication',
|
|
126
|
+
name: 'sessionOptions',
|
|
127
|
+
type: 'collection',
|
|
128
|
+
placeholder: 'Add Option',
|
|
129
|
+
default: {},
|
|
130
|
+
displayOptions: {
|
|
131
|
+
show: {
|
|
132
|
+
operation: ['cosineExtractor'],
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
options: [
|
|
136
|
+
{
|
|
137
|
+
displayName: 'Cookies',
|
|
138
|
+
name: 'cookies',
|
|
139
|
+
type: 'fixedCollection',
|
|
140
|
+
default: { cookieValues: [] },
|
|
141
|
+
typeOptions: {
|
|
142
|
+
multipleValues: true,
|
|
143
|
+
},
|
|
144
|
+
options: [
|
|
145
|
+
{
|
|
146
|
+
name: 'cookieValues',
|
|
147
|
+
displayName: 'Cookie',
|
|
148
|
+
values: [
|
|
149
|
+
{
|
|
150
|
+
displayName: 'Name',
|
|
151
|
+
name: 'name',
|
|
152
|
+
type: 'string',
|
|
153
|
+
default: '',
|
|
154
|
+
description: 'Cookie name',
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
displayName: 'Value',
|
|
158
|
+
name: 'value',
|
|
159
|
+
type: 'string',
|
|
160
|
+
default: '',
|
|
161
|
+
description: 'Cookie value',
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
displayName: 'Domain',
|
|
165
|
+
name: 'domain',
|
|
166
|
+
type: 'string',
|
|
167
|
+
default: '',
|
|
168
|
+
description: 'Cookie domain',
|
|
169
|
+
},
|
|
170
|
+
],
|
|
171
|
+
},
|
|
172
|
+
],
|
|
173
|
+
description: 'Cookies to inject into the browser session for authentication',
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
displayName: 'Session ID',
|
|
177
|
+
name: 'sessionId',
|
|
178
|
+
type: 'string',
|
|
179
|
+
default: '',
|
|
180
|
+
placeholder: 'my-session-123',
|
|
181
|
+
description: 'Reuse browser context across requests with a session identifier',
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
displayName: 'Storage State (JSON)',
|
|
185
|
+
name: 'storageState',
|
|
186
|
+
type: 'json',
|
|
187
|
+
default: '',
|
|
188
|
+
placeholder: '{"cookies": [...], "origins": [...]}',
|
|
189
|
+
description: 'Browser storage state (cookies, localStorage, sessionStorage) as JSON. Best for n8n Cloud. Get from browser DevTools → Application → Storage.',
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
displayName: 'Use Managed Browser',
|
|
193
|
+
name: 'useManagedBrowser',
|
|
194
|
+
type: 'boolean',
|
|
195
|
+
default: false,
|
|
196
|
+
description: 'Whether to connect to an existing managed browser instance instead of launching a new one',
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
displayName: 'Use Persistent Context',
|
|
200
|
+
name: 'usePersistentContext',
|
|
201
|
+
type: 'boolean',
|
|
202
|
+
default: false,
|
|
203
|
+
description: 'Whether to save browser context to disk for session persistence',
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
displayName: 'User Data Directory',
|
|
207
|
+
name: 'userDataDir',
|
|
208
|
+
type: 'string',
|
|
209
|
+
default: '',
|
|
210
|
+
placeholder: '/data/browser-profiles/profile1',
|
|
211
|
+
description: 'Path to browser profile directory for persistent sessions. Advanced: Only works in self-hosted n8n with persistent volumes. Use Storage State for cloud deployments.',
|
|
212
|
+
displayOptions: {
|
|
213
|
+
show: {
|
|
214
|
+
usePersistentContext: [true],
|
|
215
|
+
},
|
|
216
|
+
},
|
|
217
|
+
},
|
|
218
|
+
],
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
displayName: 'Clustering Options',
|
|
222
|
+
name: 'clusteringOptions',
|
|
223
|
+
type: 'collection',
|
|
224
|
+
placeholder: 'Add Option',
|
|
225
|
+
default: {},
|
|
226
|
+
displayOptions: {
|
|
227
|
+
show: {
|
|
228
|
+
operation: ['cosineExtractor'],
|
|
229
|
+
},
|
|
230
|
+
},
|
|
231
|
+
options: [
|
|
232
|
+
{
|
|
233
|
+
displayName: 'Linkage Method',
|
|
234
|
+
name: 'linkageMethod',
|
|
235
|
+
type: 'options',
|
|
236
|
+
options: [
|
|
237
|
+
{
|
|
238
|
+
name: 'Ward',
|
|
239
|
+
value: 'ward',
|
|
240
|
+
description: 'Minimises variance within clusters (recommended for most use cases)',
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
name: 'Complete',
|
|
244
|
+
value: 'complete',
|
|
245
|
+
description: 'Uses maximum distances between clusters',
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
name: 'Average',
|
|
249
|
+
value: 'average',
|
|
250
|
+
description: 'Uses average distances between all pairs',
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
name: 'Single',
|
|
254
|
+
value: 'single',
|
|
255
|
+
description: 'Uses minimum distances between clusters',
|
|
256
|
+
},
|
|
257
|
+
],
|
|
258
|
+
default: 'ward',
|
|
259
|
+
description: 'Clustering algorithm linkage method for grouping similar content',
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
displayName: 'Max Distance',
|
|
263
|
+
name: 'maxDist',
|
|
264
|
+
type: 'number',
|
|
265
|
+
default: 0.2,
|
|
266
|
+
typeOptions: {
|
|
267
|
+
minValue: 0,
|
|
268
|
+
maxValue: 1,
|
|
269
|
+
numberPrecision: 2,
|
|
270
|
+
},
|
|
271
|
+
description: 'Maximum distance threshold for clustering (0.0 to 1.0). Lower values create tighter clusters.',
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
displayName: 'Model Name',
|
|
275
|
+
name: 'modelName',
|
|
276
|
+
type: 'string',
|
|
277
|
+
default: 'sentence-transformers/all-MiniLM-L6-v2',
|
|
278
|
+
placeholder: 'sentence-transformers/all-MiniLM-L6-v2',
|
|
279
|
+
description: 'Sentence transformer model for generating embeddings. Use multilingual models for non-English content.',
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
displayName: 'Similarity Threshold',
|
|
283
|
+
name: 'simThreshold',
|
|
284
|
+
type: 'number',
|
|
285
|
+
default: 0.3,
|
|
286
|
+
typeOptions: {
|
|
287
|
+
minValue: 0,
|
|
288
|
+
maxValue: 1,
|
|
289
|
+
numberPrecision: 2,
|
|
290
|
+
},
|
|
291
|
+
description: 'Minimum similarity score for content to be included (0.0 to 1.0). Higher values = stricter matching.',
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
displayName: 'Top K Clusters',
|
|
295
|
+
name: 'topK',
|
|
296
|
+
type: 'number',
|
|
297
|
+
default: 3,
|
|
298
|
+
typeOptions: {
|
|
299
|
+
minValue: 1,
|
|
300
|
+
},
|
|
301
|
+
description: 'Number of top-ranked content clusters to return',
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
displayName: 'Verbose',
|
|
305
|
+
name: 'verbose',
|
|
306
|
+
type: 'boolean',
|
|
307
|
+
default: false,
|
|
308
|
+
description: 'Whether to enable detailed logging for debugging clustering behaviour',
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
displayName: 'Word Count Threshold',
|
|
312
|
+
name: 'wordCountThreshold',
|
|
313
|
+
type: 'number',
|
|
314
|
+
default: 10,
|
|
315
|
+
typeOptions: {
|
|
316
|
+
minValue: 1,
|
|
317
|
+
},
|
|
318
|
+
description: 'Minimum number of words per content block to be included in clustering',
|
|
319
|
+
},
|
|
320
|
+
],
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
displayName: 'Options',
|
|
324
|
+
name: 'options',
|
|
325
|
+
type: 'collection',
|
|
326
|
+
placeholder: 'Add Option',
|
|
327
|
+
default: {},
|
|
328
|
+
displayOptions: {
|
|
329
|
+
show: {
|
|
330
|
+
operation: ['cosineExtractor'],
|
|
331
|
+
},
|
|
332
|
+
},
|
|
333
|
+
options: [
|
|
334
|
+
{
|
|
335
|
+
displayName: 'Cache Mode',
|
|
336
|
+
name: 'cacheMode',
|
|
337
|
+
type: 'options',
|
|
338
|
+
options: [
|
|
339
|
+
{
|
|
340
|
+
name: 'Bypass (Skip Cache)',
|
|
341
|
+
value: 'BYPASS',
|
|
342
|
+
description: 'Skip cache for this operation, fetch fresh content',
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
name: 'Disabled (No Cache)',
|
|
346
|
+
value: 'DISABLED',
|
|
347
|
+
description: 'No caching at all',
|
|
348
|
+
},
|
|
349
|
+
{
|
|
350
|
+
name: 'Enabled (Read/Write)',
|
|
351
|
+
value: 'ENABLED',
|
|
352
|
+
description: 'Use cache if available, save new results to cache',
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
name: 'Read Only',
|
|
356
|
+
value: 'READ_ONLY',
|
|
357
|
+
description: 'Only read from cache, do not write new results',
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
name: 'Write Only',
|
|
361
|
+
value: 'WRITE_ONLY',
|
|
362
|
+
description: 'Only write to cache, do not read existing cache',
|
|
363
|
+
},
|
|
364
|
+
],
|
|
365
|
+
default: 'ENABLED',
|
|
366
|
+
description: 'How to use the cache when crawling',
|
|
367
|
+
},
|
|
368
|
+
{
|
|
369
|
+
displayName: 'CSS Selector',
|
|
370
|
+
name: 'cssSelector',
|
|
371
|
+
type: 'string',
|
|
372
|
+
default: '',
|
|
373
|
+
placeholder: 'article.content',
|
|
374
|
+
description: 'CSS selector to pre-filter content before clustering (leave empty to process full page)',
|
|
375
|
+
},
|
|
376
|
+
{
|
|
377
|
+
displayName: 'Include Full Text',
|
|
378
|
+
name: 'includeFullText',
|
|
379
|
+
type: 'boolean',
|
|
380
|
+
default: false,
|
|
381
|
+
description: 'Whether to include the full crawled markdown text in the output',
|
|
382
|
+
},
|
|
383
|
+
],
|
|
384
|
+
},
|
|
385
|
+
];
|
|
386
|
+
async function execute(items, nodeOptions) {
|
|
387
|
+
const allResults = [];
|
|
388
|
+
for (let i = 0; i < items.length; i++) {
|
|
389
|
+
try {
|
|
390
|
+
const url = this.getNodeParameter('url', i, '');
|
|
391
|
+
const semanticFilter = this.getNodeParameter('semanticFilter', i, '');
|
|
392
|
+
const browserOptions = this.getNodeParameter('browserOptions', i, {});
|
|
393
|
+
const sessionOptions = this.getNodeParameter('sessionOptions', i, {});
|
|
394
|
+
const clusteringOptions = this.getNodeParameter('clusteringOptions', i, {});
|
|
395
|
+
const options = this.getNodeParameter('options', i, {});
|
|
396
|
+
let mergedBrowserOptions = { ...browserOptions, ...sessionOptions };
|
|
397
|
+
if (mergedBrowserOptions.extraArgs && typeof mergedBrowserOptions.extraArgs === 'object') {
|
|
398
|
+
const extraArgsCollection = mergedBrowserOptions.extraArgs;
|
|
399
|
+
if (extraArgsCollection.args && Array.isArray(extraArgsCollection.args)) {
|
|
400
|
+
mergedBrowserOptions.extraArgs = extraArgsCollection.args
|
|
401
|
+
.map(arg => String(arg.value || '').trim())
|
|
402
|
+
.filter(v => v.length > 0);
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
if (!url || !(0, utils_1.isValidUrl)(url)) {
|
|
406
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Please provide a valid URL.', { itemIndex: i });
|
|
407
|
+
}
|
|
408
|
+
if (!semanticFilter || semanticFilter.trim().length === 0) {
|
|
409
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Semantic Filter is required for CosineStrategy. Provide keywords or topics to guide content clustering.', { itemIndex: i });
|
|
410
|
+
}
|
|
411
|
+
const extractionStrategy = (0, utils_1.createCosineExtractionStrategy)(semanticFilter, clusteringOptions);
|
|
412
|
+
const crawlerOptions = {
|
|
413
|
+
...mergedBrowserOptions,
|
|
414
|
+
cacheMode: options.cacheMode || 'ENABLED',
|
|
415
|
+
jsCode: browserOptions.jsCode,
|
|
416
|
+
cssSelector: options.cssSelector,
|
|
417
|
+
};
|
|
418
|
+
const crawlerConfig = (0, utils_1.createCrawlerRunConfig)(crawlerOptions);
|
|
419
|
+
crawlerConfig.extractionStrategy = extractionStrategy;
|
|
420
|
+
const crawler = await (0, utils_1.getCrawl4aiClient)(this);
|
|
421
|
+
const result = await crawler.arun(url, crawlerConfig);
|
|
422
|
+
const extractedData = (0, formatters_1.parseExtractedJson)(result);
|
|
423
|
+
const formattedResult = (0, formatters_1.formatExtractionResult)(result, extractedData, options.includeFullText);
|
|
424
|
+
allResults.push({
|
|
425
|
+
json: formattedResult,
|
|
426
|
+
pairedItem: { item: i },
|
|
427
|
+
});
|
|
428
|
+
}
|
|
429
|
+
catch (error) {
|
|
430
|
+
if (this.continueOnFail()) {
|
|
431
|
+
allResults.push({
|
|
432
|
+
json: {
|
|
433
|
+
error: error.message,
|
|
434
|
+
},
|
|
435
|
+
pairedItem: { item: i },
|
|
436
|
+
});
|
|
437
|
+
}
|
|
438
|
+
else {
|
|
439
|
+
throw error;
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
return allResults;
|
|
444
|
+
}
|
|
445
|
+
//# sourceMappingURL=cosineExtractor.operation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cosineExtractor.operation.js","sourceRoot":"","sources":["../../../../nodes/Crawl4aiPlusContentExtractor/actions/cosineExtractor.operation.ts"],"names":[],"mappings":"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"}
|
|
@@ -146,7 +146,7 @@ exports.description = [
|
|
|
146
146
|
},
|
|
147
147
|
],
|
|
148
148
|
default: 'chromium',
|
|
149
|
-
description: 'Which browser engine to use for crawling',
|
|
149
|
+
description: 'Which browser engine to use for crawling. Default: Chromium (if not specified).',
|
|
150
150
|
},
|
|
151
151
|
{
|
|
152
152
|
displayName: 'Enable JavaScript',
|
|
@@ -162,6 +162,32 @@ exports.description = [
|
|
|
162
162
|
default: false,
|
|
163
163
|
description: 'Whether to enable stealth mode to bypass basic bot detection (hides webdriver properties and modifies browser fingerprints)',
|
|
164
164
|
},
|
|
165
|
+
{
|
|
166
|
+
displayName: 'Extra Browser Arguments',
|
|
167
|
+
name: 'extraArgs',
|
|
168
|
+
type: 'fixedCollection',
|
|
169
|
+
typeOptions: {
|
|
170
|
+
multipleValues: true,
|
|
171
|
+
},
|
|
172
|
+
default: {},
|
|
173
|
+
description: 'Additional command-line arguments to pass to the browser (advanced users only)',
|
|
174
|
+
options: [
|
|
175
|
+
{
|
|
176
|
+
name: 'args',
|
|
177
|
+
displayName: 'Arguments',
|
|
178
|
+
values: [
|
|
179
|
+
{
|
|
180
|
+
displayName: 'Argument',
|
|
181
|
+
name: 'value',
|
|
182
|
+
type: 'string',
|
|
183
|
+
default: '',
|
|
184
|
+
placeholder: '--disable-blink-features=AutomationControlled',
|
|
185
|
+
description: 'Browser command-line argument (e.g., --disable-blink-features=AutomationControlled)',
|
|
186
|
+
},
|
|
187
|
+
],
|
|
188
|
+
},
|
|
189
|
+
],
|
|
190
|
+
},
|
|
165
191
|
{
|
|
166
192
|
displayName: 'Headless Mode',
|
|
167
193
|
name: 'headless',
|
|
@@ -203,6 +229,71 @@ exports.description = [
|
|
|
203
229
|
},
|
|
204
230
|
],
|
|
205
231
|
},
|
|
232
|
+
{
|
|
233
|
+
displayName: 'Session & Authentication',
|
|
234
|
+
name: 'sessionOptions',
|
|
235
|
+
type: 'collection',
|
|
236
|
+
placeholder: 'Add Option',
|
|
237
|
+
default: {},
|
|
238
|
+
displayOptions: {
|
|
239
|
+
show: {
|
|
240
|
+
operation: ['cssExtractor'],
|
|
241
|
+
},
|
|
242
|
+
},
|
|
243
|
+
options: [
|
|
244
|
+
{
|
|
245
|
+
displayName: 'Cookies',
|
|
246
|
+
name: 'cookies',
|
|
247
|
+
type: 'json',
|
|
248
|
+
default: '',
|
|
249
|
+
placeholder: '[{"name": "session_id", "value": "abc123", "domain": ".example.com", "path": "/"}]',
|
|
250
|
+
description: 'Array of cookie objects to inject. Alternative to storage state for simple cookie-based auth.',
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
displayName: 'Storage State (JSON)',
|
|
254
|
+
name: 'storageState',
|
|
255
|
+
type: 'string',
|
|
256
|
+
typeOptions: {
|
|
257
|
+
rows: 6,
|
|
258
|
+
},
|
|
259
|
+
default: '',
|
|
260
|
+
placeholder: '{"cookies": [...], "origins": [...]}',
|
|
261
|
+
description: 'Browser storage state as JSON (cookies, localStorage, sessionStorage). Captures authenticated session state. Works in all n8n environments.',
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
displayName: 'Use Managed Browser',
|
|
265
|
+
name: 'useManagedBrowser',
|
|
266
|
+
type: 'boolean',
|
|
267
|
+
default: false,
|
|
268
|
+
description: 'Whether to use managed browser mode (required for persistent contexts). Advanced option.',
|
|
269
|
+
displayOptions: {
|
|
270
|
+
show: {
|
|
271
|
+
usePersistentContext: [true],
|
|
272
|
+
},
|
|
273
|
+
},
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
displayName: 'Use Persistent Browser Context',
|
|
277
|
+
name: 'usePersistentContext',
|
|
278
|
+
type: 'boolean',
|
|
279
|
+
default: false,
|
|
280
|
+
description: 'Whether to use a persistent browser context (requires user data directory). Only use in self-hosted environments with persistent storage.',
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
displayName: 'User Data Directory',
|
|
284
|
+
name: 'userDataDir',
|
|
285
|
+
type: 'string',
|
|
286
|
+
default: '',
|
|
287
|
+
placeholder: '/data/browser-profiles/profile1',
|
|
288
|
+
description: 'Path to browser profile directory for persistent sessions. Advanced: Only works in self-hosted n8n with persistent volumes. Use Storage State for cloud deployments.',
|
|
289
|
+
displayOptions: {
|
|
290
|
+
show: {
|
|
291
|
+
usePersistentContext: [true],
|
|
292
|
+
},
|
|
293
|
+
},
|
|
294
|
+
},
|
|
295
|
+
],
|
|
296
|
+
},
|
|
206
297
|
{
|
|
207
298
|
displayName: 'Options',
|
|
208
299
|
name: 'options',
|
|
@@ -275,7 +366,15 @@ async function execute(items, nodeOptions) {
|
|
|
275
366
|
const baseSelector = this.getNodeParameter('baseSelector', i, '');
|
|
276
367
|
const fieldsValues = this.getNodeParameter('fields.fieldsValues', i, []);
|
|
277
368
|
const browserOptions = this.getNodeParameter('browserOptions', i, {});
|
|
369
|
+
const sessionOptions = this.getNodeParameter('sessionOptions', i, {});
|
|
278
370
|
const options = this.getNodeParameter('options', i, {});
|
|
371
|
+
let mergedBrowserOptions = { ...browserOptions, ...sessionOptions };
|
|
372
|
+
if (browserOptions.extraArgs && typeof browserOptions.extraArgs === 'object') {
|
|
373
|
+
const extraArgsCollection = browserOptions.extraArgs;
|
|
374
|
+
if (extraArgsCollection.args && Array.isArray(extraArgsCollection.args)) {
|
|
375
|
+
mergedBrowserOptions.extraArgs = extraArgsCollection.args.map((arg) => arg.value).filter((v) => v);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
279
378
|
if (!url) {
|
|
280
379
|
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'URL cannot be empty.', { itemIndex: i });
|
|
281
380
|
}
|
|
@@ -298,15 +397,16 @@ async function execute(items, nodeOptions) {
|
|
|
298
397
|
attribute: field.attribute,
|
|
299
398
|
})),
|
|
300
399
|
};
|
|
301
|
-
const browserConfig = (0, utils_1.createBrowserConfig)(browserOptions);
|
|
302
400
|
const extractionStrategy = (0, utils_1.createCssSelectorExtractionStrategy)(schema);
|
|
303
|
-
const
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
extractionStrategy,
|
|
307
|
-
cacheMode: options.cacheMode || 'enabled',
|
|
401
|
+
const crawlerOptions = {
|
|
402
|
+
...mergedBrowserOptions,
|
|
403
|
+
cacheMode: options.cacheMode || 'ENABLED',
|
|
308
404
|
jsCode: browserOptions.jsCode,
|
|
309
|
-
}
|
|
405
|
+
};
|
|
406
|
+
const crawlerConfig = (0, utils_1.createCrawlerRunConfig)(crawlerOptions);
|
|
407
|
+
crawlerConfig.extractionStrategy = extractionStrategy;
|
|
408
|
+
const crawler = await (0, utils_1.getCrawl4aiClient)(this);
|
|
409
|
+
const result = await crawler.arun(url, crawlerConfig);
|
|
310
410
|
const extractedData = (0, formatters_1.parseExtractedJson)(result);
|
|
311
411
|
const formattedResult = (0, formatters_1.formatExtractionResult)(result, extractedData, options.includeFullText);
|
|
312
412
|
if (options.cleanText === true && extractedData) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cssExtractor.operation.js","sourceRoot":"","sources":["../../../../nodes/Crawl4aiPlusContentExtractor/actions/cssExtractor.operation.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"cssExtractor.operation.js","sourceRoot":"","sources":["../../../../nodes/Crawl4aiPlusContentExtractor/actions/cssExtractor.operation.ts"],"names":[],"mappings":"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"}
|