صفحات وب به Markdown با n8n
تبدیل صفحات وب به Markdown با n8n و Firecrawl | آموزش کامل Workflow استخراج محتوا و لینک صفحات
مقدمه
قبل از شروع
کاربردهای این Workflow
ساخت پایگاه دانش برای ChatGPT یا سایر مدلهای هوش مصنوعی
خزش (Crawling) وبسایتهای سازمانی
تحلیل محتوای وبسایت رقبا
آرشیو صفحات وب
استخراج لینکهای داخلی و خارجی
تولید Dataset برای آموزش مدلهای هوش مصنوعی
جمعآوری اطلاعات برای موتورهای جستجوی داخلی
انتقال اطلاعات وبسایت به دیتابیس
پیشنیازهای اجرای این Workflow
دانلود Template
آموزش Import کردن Workflow
تبدیل صفحات وب به Markdown با n8n
- وارد داشبورد n8n شوید.
- روی Import from File کلیک کنید.
- فایل JSON را انتخاب کنید.
- Workflow ایجاد خواهد شد.
- Credentialهای موردنیاز را تنظیم کنید.
ساختار کامل Workflow بهصورت مرحلهبهمرحله
تبدیل صفحات وب به Markdown با n8n
یکی از نقاط قوت این Template، سادگی در طراحی و در عین حال رعایت اصول مهمی مانند مدیریت حافظه، کنترل نرخ درخواستهای API و آمادهسازی داده برای ذخیرهسازی است. Workflow بهگونهای طراحی شده که بتواند تعداد زیادی URL را بدون فشار بیش از حد به سرور یا API پردازش کند.
مرحله اول: شروع Workflow
تبدیل صفحات وب به Markdown با n8n
Manual Trigger
Workflow با یک Manual Trigger آغاز میشود. این Node تنها زمانی اجرا میشود که کاربر در محیط n8n روی گزینه Test Workflow کلیک کند.
هدف از استفاده از این Trigger، سادهتر کردن فرآیند تست و توسعه Template است. در محیط عملی میتوانید این Trigger را با Webhook، Cron یا Triggerهای پایگاه داده جایگزین کنید.
در این مرحله هنوز هیچ دادهای تولید نشده و تنها اجرای Workflow آغاز میشود.
مرحله دوم: دریافت لیست URLها
تبدیل صفحات وب به Markdown با n8n
Get URLs from Own Data Source
پس از شروع Workflow، نوبت به دریافت لیست صفحات وب میرسد.
در نسخه نمونه، این Node از نوع No Operation است و صرفاً نقش یک Placeholder را دارد. توسعهدهنده قصد داشته محل مشخصی برای اتصال منبع داده ایجاد کند تا هر کاربر بتواند آن را با سیستم موردنظر خود جایگزین کند.
در پروژههای واقعی معمولاً این Node به یکی از موارد زیر متصل میشود:
- Google Sheets
- Airtable
- PostgreSQL
- MySQL
- Notion Database
- MongoDB
- Supabase
- فایل CSV
- API اختصاصی
در نهایت خروجی این مرحله باید مجموعهای از URLها باشد که هر کدام در فیلدی با نام Page قرار گرفتهاند.
مرحله سوم: تولید داده نمونه
تبدیل صفحات وب به Markdown با n8n
Example Fields from Data Source
برای اینکه Workflow بدون اتصال به دیتابیس نیز قابل آزمایش باشد، یک Node از نوع Set در نظر گرفته شده است.
وجود این Node باعث میشود بتوانید تنها با فشردن دکمه Test Workflow، عملکرد کل Template را بررسی کنید.
در محیط واقعی معمولاً این Node حذف میشود یا با دادههای دریافتی از دیتابیس جایگزین خواهد شد.
مرحله چهارم: تبدیل آرایه به آیتمهای مستقل
تبدیل صفحات وب به Markdown با n8n
Split Out Page URLs
در این مرحله، آرایه URLها به آیتمهای جداگانه تقسیم میشود.
به عنوان مثال اگر دیتابیس شامل ۱۰۰ آدرس باشد، پس از اجرای این Node، ۱۰۰ Item مستقل ایجاد خواهد شد.
این موضوع اهمیت زیادی دارد، زیرا بیشتر Nodeهای n8n روی هر Item بهصورت مستقل عملیات انجام میدهند.
پس از این مرحله، هر URL بهصورت جداگانه وارد چرخه پردازش خواهد شد.
مرحله پنجم: مدیریت حافظه سرور
تبدیل صفحات وب به Markdown با n8n
40 Items at a Time (Limit)
اگر تعداد URLها زیاد باشد، ارسال همزمان همه آنها میتواند باعث مصرف بیش از حد حافظه RAM شود.
به همین دلیل توسعهدهنده از Node Limit استفاده کرده است.
این Node تنها اجازه میدهد حداکثر ۴۰ URL در هر چرخه وارد فرآیند پردازش شوند.
اگر دیتابیس شامل ۴۰۰۰ صفحه باشد، Workflow آنها را به گروههای ۴۰ تایی تقسیم میکند.
این طراحی باعث میشود:
- مصرف حافظه کاهش یابد.
- احتمال Crash شدن n8n کمتر شود.
- اجرای Workflow پایدارتر شود.
در یادداشت Template نیز اشاره شده که مقدار ۴۰ متناسب با حافظه سرور سازنده انتخاب شده و در صورت استفاده از سرور قدرتمندتر میتوان این مقدار را افزایش داد.
مرحله ششم: تقسیم هر گروه به Batchهای کوچکتر
تبدیل صفحات وب به Markdown با n8n
Split in Batches (10 at a Time)
اکنون هر گروه ۴۰ تایی نیز به Batchهای کوچکتر تقسیم میشود.
در این Template اندازه هر Batch برابر با ۱۰ آیتم است.
بنابراین اگر ۴۰ URL وجود داشته باشد، روند اجرای آن به شکل زیر خواهد بود:
- Batch اول → ۱۰ URL
- Batch دوم → ۱۰ URL
- Batch سوم → ۱۰ URL
- Batch چهارم → ۱۰ URL
این طراحی به دلیل محدودیت API سرویس Firecrawl انجام شده است.
در مستندات Template نیز اشاره شده که API تقریباً ۱۰ درخواست در دقیقه را بدون مشکل پشتیبانی میکند.
مرحله هفتم: ارسال درخواست به Firecrawl
تبدیل صفحات وب به Markdown با n8n
Retrieve Page Markdown and Links
این مهمترین بخش Workflow است.
برای هر URL یک درخواست HTTP از نوع POST به API سرویس Firecrawl ارسال میشود.
در Body درخواست، آدرس صفحه و فرمتهای موردنیاز مشخص شدهاند.
Firecrawl پس از دریافت درخواست، صفحه وب را پردازش کرده و اطلاعات زیر را استخراج میکند:
- عنوان صفحه
- توضیحات متا
- محتوای اصلی در قالب Markdown
- تمام لینکهای موجود در صفحه
از آنجا که این Node از Credential نوع HTTP Header Authentication استفاده میکند، لازم است API Key سرویس Firecrawl از قبل در n8n تعریف شده باشد.
همچنین گزینه Retry on Fail نیز فعال شده است تا در صورت بروز خطاهای موقتی، درخواست دوباره ارسال شود.
مرحله هشتم: آمادهسازی خروجی
تبدیل صفحات وب به Markdown با n8n
Markdown Data and Links
پاسخ Firecrawl شامل اطلاعات زیادی است.
در این مرحله فقط دادههای موردنیاز استخراج میشوند.
Workflow چهار فیلد اصلی را از پاسخ API جدا میکند:
- Title
- Description
- Markdown Content
- Links
این کار باعث میشود دادهها برای ذخیره در دیتابیس یا ارسال به Workflowهای دیگر ساختاریافته و خوانا باشند.
همچنین اگر در آینده بخواهید فیلدهای بیشتری مانند نویسنده، تاریخ انتشار یا تصاویر صفحه را ذخیره کنید، کافی است این Node را ویرایش نمایید.
مرحله نهم: ذخیره اطلاعات
تبدیل صفحات وب به Markdown با n8n
Connect to Your Own Data Source
پس از آماده شدن دادهها، اطلاعات باید در یک محل ذخیره شوند.
در Template اصلی این Node نیز از نوع NoOp است تا هر کاربر آن را با سرویس موردنظر خود جایگزین کند.
خروجی این مرحله میتواند به موارد زیر ارسال شود:
- Airtable
- Google Sheets
- PostgreSQL
- MySQL
- Notion
- MongoDB
- Elasticsearch
- Pinecone
- Qdrant
- Weaviate
- ChromaDB
- هر API اختصاصی
به همین دلیل این Template برای پروژههای مختلف انعطافپذیری بالایی دارد.
مرحله دهم: رعایت محدودیت API
تبدیل صفحات وب به Markdown با n8n
Wait
پس از ذخیره اطلاعات، Workflow مستقیماً Batch بعدی را اجرا نمیکند.
ابتدا به مدت ۴۵ ثانیه منتظر میماند.
هدف از این انتظار، جلوگیری از ارسال تعداد زیادی درخواست در مدت زمان کوتاه و رعایت محدودیت نرخ درخواستهای سرویس Firecrawl است.
در صورتی که این Node حذف شود، احتمال دریافت خطاهای زیر افزایش مییابد:
- Rate Limit Exceeded
- Too Many Requests (429)
- Block شدن موقت API Key
مرحله یازدهم: اجرای Batch بعدی
تبدیل صفحات وب به Markdown با n8n
پس از پایان زمان انتظار، خروجی Node Wait دوباره به Node Split in Batches بازمیگردد.
این اتصال حلقهای باعث میشود Workflow بهصورت خودکار Batch بعدی را دریافت کرده و همان مراحل را دوباره اجرا کند.
این چرخه تا زمانی ادامه پیدا میکند که تمام URLهای موجود در لیست پردازش شوند.
به همین دلیل، حتی اگر هزاران صفحه وب در ورودی وجود داشته باشد، Workflow بدون نیاز به دخالت کاربر و با رعایت محدودیتهای حافظه و API، همه آنها را بهترتیب پردازش خواهد کرد.
جمعبندی ساختار Workflow
تبدیل صفحات وب به Markdown با n8n
این Template بر پایه یک معماری ساده اما بسیار بهینه طراحی شده است. ابتدا URLها از یک منبع داده دریافت میشوند، سپس به آیتمهای مستقل تبدیل شده و برای جلوگیری از فشار روی سرور و API در دو سطح (۴۰ آیتم و سپس Batchهای ۱۰ تایی) مدیریت میشوند. هر URL از طریق Firecrawl به Markdown و لینکهای صفحه تبدیل شده، دادههای ضروری استخراج میشوند و در نهایت خروجی در پایگاه داده دلخواه ذخیره میشود. وجود Node انتظار (Wait) و حلقه بازگشت به Split in Batches نیز باعث میشود Workflow بتواند حجم زیادی از صفحات را بهصورت پایدار، بدون نقض محدودیتهای API و با مصرف بهینه منابع سیستم پردازش کند.
آموزش کامل و تخصصی تمام Nodeهای این Template
تبدیل صفحات وب به Markdown با n8n
در این Template از چندین Node مختلف استفاده شده است که هر کدام وظیفه مشخصی در فرآیند دریافت URLها، مدیریت حجم پردازش، ارتباط با API سرویس Firecrawl و آمادهسازی خروجی دارند. در ادامه، تمامی Nodeهای اجرایی Workflow بهصورت کامل بررسی میشوند.
نکته: Nodeهای Sticky Note صرفاً برای مستندسازی و راهنمایی کاربر هستند و در اجرای Workflow نقشی ندارند. با این حال، در انتهای این بخش نقش آنها نیز توضیح داده شده است.
1. Manual Trigger (When clicking ‘Test workflow’)
تبدیل صفحات وب به Markdown با n8n
نوع Node: Manual Trigger
وظیفه Node
این Node نقطه شروع اجرای Workflow است. هر زمان که در محیط n8n روی دکمه Test Workflow کلیک کنید، این Node فعال شده و کل فرآیند را آغاز میکند.
استفاده از Manual Trigger باعث میشود قبل از اتصال Workflow به منابع واقعی، بتوانید عملکرد آن را بهصورت دستی آزمایش کنید.
ورودی
ندارد.
خروجی
یک Execution جدید که به Node بعدی ارسال میشود.
تنظیمات مهم
این Node تنظیمات خاصی ندارد و تنها برای اجرای دستی استفاده میشود.
نکات قابل تغییر
در محیط عملی میتوانید آن را با Triggerهای زیر جایگزین کنید:
- Cron Trigger
- Schedule Trigger
- Webhook
- Google Sheets Trigger
- Airtable Trigger
- Database Trigger
دلیل استفاده در Workflow
ایجاد محیطی ساده برای تست و توسعه Workflow بدون نیاز به Triggerهای خارجی.
2. No Operation (Get URLs from Own Data Source)
تبدیل صفحات وب به Markdown با n8n
نوع Node: No Operation (NoOp)
وظیفه Node
این Node هیچ تغییری روی داده ایجاد نمیکند و تنها بهعنوان یک Placeholder برای اتصال منبع داده ورودی در نظر گرفته شده است.
در پروژه واقعی باید این Node را با Node مربوط به دیتابیس یا منبع داده خود جایگزین کنید.
ورودی
داده خروجی Manual Trigger
خروجی
همان داده بدون هیچ تغییری
تنظیمات مهم
تنظیمات خاصی ندارد.
نکات قابل تغییر
این Node را میتوانید با موارد زیر جایگزین کنید:
- Google Sheets
- Airtable
- PostgreSQL
- MySQL
- Notion
- MongoDB
- Supabase
- HTTP Request
- CSV Reader
- Excel
دلیل استفاده در Workflow
افزایش انعطافپذیری Template و امکان اتصال به هر نوع منبع داده.
3. Set (Example Fields from Data Source)
تبدیل صفحات وب به Markdown با n8n
نوع Node: Set
وظیفه Node
این Node داده نمونه برای تست Workflow ایجاد میکند.
در این Template، یک فیلد با نام Page ساخته شده که شامل آرایهای از URLها است.
در پروژه واقعی معمولاً این اطلاعات مستقیماً از دیتابیس دریافت میشوند.
ورودی
داده خروجی Node قبلی
خروجی
یک شیء شامل فیلد:
- Page (Array)
تنظیمات مهم
- ساخت فیلد Page
- نوع داده Array
- فعال بودن گزینه Include Other Fields
نکات قابل تغییر
میتوانید:
- تعداد URLها را افزایش دهید.
- فیلدهای جدید اضافه کنید.
- اطلاعاتی مانند Category، Language یا Priority را نیز همراه URL ذخیره کنید.
دلیل استفاده
امکان تست Workflow بدون نیاز به اتصال دیتابیس.
4. Split Out (Split Out Page URLs)
تبدیل صفحات وب به Markdown با n8n
نوع Node: Split Out
وظیفه Node
این Node آرایه URLها را به آیتمهای مستقل تبدیل میکند.
بهعنوان مثال اگر آرایه شامل ۱۰۰ لینک باشد، خروجی این Node شامل ۱۰۰ Item جداگانه خواهد بود.
این مرحله یکی از مهمترین بخشهای Workflow است، زیرا اکثر Nodeهای n8n روی هر Item بهصورت مستقل عملیات انجام میدهند.
ورودی
آرایه Page
خروجی
چندین Item مستقل که هر کدام شامل یک URL هستند.
تنظیمات مهم
- Field To Split Out = Page
نکات قابل تغییر
در صورت تغییر نام ستون URL باید مقدار این گزینه نیز تغییر کند.
دلیل استفاده
آمادهسازی داده برای پردازش تکبهتک صفحات.
5. Limit (40 Items at a Time)
تبدیل صفحات وب به Markdown با n8n
نوع Node: Limit
وظیفه Node
این Node تعداد آیتمهایی را که در هر چرخه وارد Workflow میشوند محدود میکند.
در این Template حداکثر ۴۰ URL در هر مرحله پردازش میشوند.
این محدودیت برای جلوگیری از مصرف بیش از حد حافظه RAM سرور در نظر گرفته شده است.
ورودی
لیست URLها
خروجی
حداکثر ۴۰ آیتم
تنظیمات مهم
- Max Items = 40
نکات قابل تغییر
اگر سرور قدرتمندتری دارید میتوانید این مقدار را افزایش دهید.
برای مثال:
- 80
- 100
- 200
یا در سرورهای ضعیف آن را کاهش دهید.
دلیل استفاده
مدیریت مصرف حافظه و جلوگیری از Crash شدن Workflow.
6. Split in Batches (10 at a Time)
نوع Node: Split in Batches
وظیفه Node
این Node گروه ۴۰ تایی را به Batchهای کوچکتر تقسیم میکند.
در این Workflow اندازه هر Batch برابر با ۱۰ آیتم است.
بنابراین URLها بهصورت تدریجی پردازش میشوند.
ورودی
حداکثر ۴۰ آیتم
خروجی
Batchهای ۱۰ تایی
تنظیمات مهم
- Batch Size = 10
نکات قابل تغییر
در صورت تغییر محدودیت API میتوانید این مقدار را افزایش یا کاهش دهید.
دلیل استفاده
رعایت محدودیت نرخ درخواستهای سرویس Firecrawl و جلوگیری از ارسال تعداد زیادی درخواست همزمان.
7. HTTP Request (Retrieve Page Markdown and Links)
نوع Node: HTTP Request
وظیفه Node
این مهمترین Node Workflow است.
در این مرحله برای هر URL یک درخواست POST به API سرویس Firecrawl ارسال میشود.
Firecrawl پس از دریافت درخواست، صفحه وب را پردازش کرده و اطلاعات ساختاریافته برمیگرداند.
ورودی
هر Item شامل یک URL
خروجی
پاسخ JSON سرویس Firecrawl شامل:
- Metadata
- Markdown
- Links
تنظیمات مهم
- Method = POST
- URL = Firecrawl API
- Authentication = HTTP Header Auth
- Content-Type = application/json
- Retry On Fail = فعال
- Wait Between Retries = 5000 میلیثانیه
بدنه درخواست (Body)
درخواست شامل دو بخش اصلی است:
- URL صفحه
- فرمتهای خروجی (Markdown و Links)
نکات قابل تغییر
میتوانید:
- Endpoint API را تغییر دهید.
- Headerهای جدید اضافه کنید.
- فرمت خروجی را به HTML یا سایر فرمتهای پشتیبانیشده تغییر دهید.
- Timeout و Retry را متناسب با پروژه تنظیم کنید.
دلیل استفاده
ارتباط مستقیم با Firecrawl و استخراج اطلاعات صفحات وب.
8. Set (Markdown Data and Links)
نوع Node: Set
وظیفه Node
پاسخ Firecrawl شامل اطلاعات متعددی است.
این Node تنها دادههای موردنیاز را استخراج و ساختار خروجی را ساده میکند.
فیلدهای استخراجشده عبارتاند از:
- Title
- Description
- Markdown Content
- Links
ورودی
پاسخ کامل API
خروجی
دادهای ساختاریافته و آماده ذخیرهسازی
تنظیمات مهم
در این Node از Expressionهای n8n برای خواندن مقادیر JSON استفاده شده است.
نکات قابل تغییر
میتوانید فیلدهای زیر را نیز اضافه کنید:
- URL
- Status Code
- Publish Date
- Images
- Author
- Language
- Canonical URL
دلیل استفاده
حذف دادههای اضافی و آمادهسازی خروجی برای دیتابیس.
9. No Operation (Connect to Your Own Data Source)
نوع Node: No Operation (NoOp)
وظیفه Node
این Node محل اتصال خروجی Workflow به پایگاه داده یا سرویس ذخیرهسازی است.
در Template اصلی هیچ دیتابیسی به آن متصل نشده تا هر کاربر بتواند سرویس موردنظر خود را انتخاب کند.
ورودی
خروجی Node Set
خروجی
همان داده بدون تغییر
تنظیمات مهم
تنظیمات خاصی ندارد.
نکات قابل تغییر
میتوانید آن را با موارد زیر جایگزین کنید:
- Airtable
- Google Sheets
- PostgreSQL
- MySQL
- Notion
- MongoDB
- Elasticsearch
- Pinecone
- Qdrant
- Weaviate
- ChromaDB
- هر API اختصاصی
دلیل استفاده
انعطافپذیری بالا و عدم وابستگی Template به یک پایگاه داده خاص.
10. Wait
نوع Node: Wait
وظیفه Node
این Node بین Batchهای مختلف مکث ایجاد میکند.
در این Template زمان انتظار برابر با ۴۵ ثانیه است.
هدف اصلی آن رعایت محدودیت تعداد درخواستهای Firecrawl و جلوگیری از دریافت خطای Rate Limit است.
ورودی
خروجی Node ذخیرهسازی
خروجی
همان داده پس از پایان زمان انتظار
تنظیمات مهم
- Wait Time = 45 Seconds
نکات قابل تغییر
در صورت تغییر محدودیت API میتوانید این مقدار را افزایش یا کاهش دهید.
اگر از پلنهای حرفهای Firecrawl استفاده میکنید، ممکن است بتوانید زمان انتظار را کمتر کنید.
دلیل استفاده
جلوگیری از بروز خطاهای 429 (Too Many Requests) و افزایش پایداری Workflow.
Nodeهای Sticky Note
این Template شامل چندین Sticky Note نیز هست. این Nodeها در اجرای Workflow هیچ نقشی ندارند و تنها برای مستندسازی و راهنمایی کاربران استفاده شدهاند.
مهمترین اطلاعاتی که در این یادداشتها ارائه شده عبارتاند از:
- توضیح عملکرد کلی Workflow
- معرفی سرویس Firecrawl
- نحوه دریافت API Key
- یادآوری تنظیم Header احراز هویت
- الزام استفاده از فیلد Page برای URLها
- پیشنهاد اتصال به پایگاه داده دلخواه
- هشدار درباره محدودیت حافظه سرور
- توصیه به پردازش URLها در Batchهای کوچک
- یادآوری رعایت محدودیت نرخ درخواستهای API
وجود این یادداشتها باعث میشود کاربران بتوانند بدون مراجعه به مستندات خارجی، مراحل راهاندازی و شخصیسازی Template را بهسادگی انجام دهند.
آشنایی با سرویس Firecrawl
در این Workflow، وظیفه اصلی استخراج محتوای صفحات وب بر عهده سرویس Firecrawl است. این سرویس یکی از ابزارهای مدرن Web Crawling و Web Scraping محسوب میشود که بهطور ویژه برای پروژههای مبتنی بر هوش مصنوعی، مدلهای زبانی بزرگ (LLM)، سیستمهای بازیابی اطلاعات (RAG) و پردازش متن طراحی شده است.
برخلاف بسیاری از ابزارهای سنتی Web Scraping که تنها کد HTML خام صفحه را استخراج میکنند، Firecrawl تلاش میکند محتوای اصلی صفحه را شناسایی کرده و آن را در قالبی تمیز، ساختاریافته و قابل استفاده ارائه دهد. به همین دلیل، خروجی این سرویس برای پردازش توسط مدلهای هوش مصنوعی بسیار مناسبتر از HTML خام است.
در این Template، درخواستها از طریق Node HTTP Request به API سرویس Firecrawl ارسال میشوند. برای هر URL، سرویس صفحه موردنظر را پردازش کرده و اطلاعاتی مانند عنوان صفحه، توضیحات متا، محتوای اصلی در قالب Markdown و لینکهای موجود را برمیگرداند.
قابلیتهای Firecrawl
استفاده از Firecrawl مزایای متعددی برای پروژههای اتوماسیون دارد، از جمله:
- تبدیل محتوای HTML به Markdown
- استخراج عنوان (Title) و توضیحات متا (Meta Description)
- استخراج لینکهای داخلی و خارجی صفحه
- حذف بخشهای غیرضروری مانند منوها، تبلیغات و کدهای اضافی
- ارائه خروجی ساختاریافته در قالب JSON
- مناسب برای پروژههای مبتنی بر LLM و RAG
- امکان استفاده از API در Workflowهای مختلف n8n
چرا در این Workflow از Firecrawl استفاده شده است؟
هدف این Workflow تنها دریافت کد HTML صفحات نیست، بلکه تولید محتوایی است که بتوان آن را مستقیماً در پروژههای هوش مصنوعی، پایگاههای دانش یا موتورهای جستجوی داخلی استفاده کرد. اگر از ابزارهای معمولی Scraping استفاده شود، معمولاً لازم است حجم زیادی از کدهای HTML، اسکریپتها و عناصر اضافی حذف شوند. Firecrawl این فرآیند را بهصورت خودکار انجام میدهد و محتوای اصلی را در قالبی ساده و خوانا ارائه میکند.
این موضوع باعث میشود مراحل بعدی پردازش داده، مانند ذخیرهسازی در پایگاه داده، ساخت Vector Database یا تحلیل متن، بسیار سادهتر و سریعتر انجام شود.
نحوه شخصیسازی Workflow
یکی از مهمترین مزایای این Template، انعطافپذیری بالای آن است. تقریباً تمام بخشهای Workflow را میتوان متناسب با نیاز پروژه تغییر داد. در ادامه، مهمترین بخشهایی که قابلیت شخصیسازی دارند معرفی شدهاند.
1. تغییر منبع دریافت URLها
در نسخه پیشفرض، از یک Node نمونه برای تعریف آدرسهای اینترنتی استفاده شده است. در پروژههای واقعی میتوانید این بخش را با منابع مختلف جایگزین کنید، مانند:
- Google Sheets
- Airtable
- PostgreSQL
- MySQL
- MongoDB
- Notion
- Supabase
- فایل CSV یا Excel
- API اختصاصی
- Webhook
به این ترتیب، Workflow میتواند URLها را بهصورت خودکار از منبع داده موردنظر دریافت کند.
2. تغییر API مورد استفاده
اگرچه این Template برای Firecrawl طراحی شده است، اما Node HTTP Request انعطاف بالایی دارد و میتوان آن را برای ارتباط با سایر APIها نیز پیکربندی کرد.
برای مثال، در صورت نیاز میتوانید از سرویسهای دیگری که قابلیت استخراج محتوای صفحات وب را ارائه میدهند استفاده کنید. در این حالت تنها کافی است آدرس API، روش احراز هویت و ساختار درخواست و پاسخ را متناسب با سرویس جدید تغییر دهید.
3. تغییر فرمت خروجی
در این Workflow خروجی شامل چهار فیلد اصلی است:
- Title
- Description
- Markdown
- Links
اما در صورت نیاز میتوانید اطلاعات بیشتری را نیز ذخیره کنید، مانند:
- URL اصلی
- وضعیت پاسخ (Status Code)
- زمان پردازش
- تاریخ انتشار صفحه
- نام نویسنده
- زبان محتوا
- Canonical URL
- تصاویر موجود در صفحه
- اطلاعات Open Graph
- سایر فیلدهای بازگشتی از API
این تغییرات از طریق Node Markdown Data and Links انجام میشوند.
4. تغییر محل ذخیره اطلاعات
در Template حاضر، Node Connect to your own data source تنها یک Placeholder است. شما میتوانید آن را با هر سرویس ذخیرهسازی جایگزین کنید، از جمله:
- Airtable
- Google Sheets
- PostgreSQL
- MySQL
- Microsoft SQL Server
- MongoDB
- Elasticsearch
- Pinecone
- Qdrant
- Weaviate
- ChromaDB
- Notion
- هر API اختصاصی
انتخاب محل ذخیرهسازی به نوع پروژه و نحوه استفاده از دادهها بستگی دارد.
5. تغییر تعداد صفحات پردازششده
در این Template، برای مدیریت مصرف منابع، دو سطح محدودیت در نظر گرفته شده است:
- پردازش حداکثر ۴۰ URL در هر چرخه
- تقسیم آنها به Batchهای ۱۰ تایی
اگر از سروری با حافظه و پردازنده قویتر استفاده میکنید، میتوانید این مقادیر را افزایش دهید. در مقابل، در سرورهای ضعیف یا هنگام استفاده از پلنهای محدود Firecrawl، بهتر است این مقادیر کاهش یابند تا از بروز خطا جلوگیری شود.
6. تغییر زمان انتظار بین Batchها
Node Wait وظیفه ایجاد وقفه میان Batchها را بر عهده دارد. در نسخه فعلی، این زمان روی ۴۵ ثانیه تنظیم شده است.
در صورت تغییر محدودیتهای API یا ارتقای پلن Firecrawl، میتوانید این زمان را کاهش یا افزایش دهید. انتخاب مقدار مناسب باعث میشود هم از ظرفیت API بهینه استفاده شود و هم احتمال دریافت خطاهای مربوط به محدودیت نرخ درخواست کاهش یابد.
7. توسعه Workflow با Nodeهای دیگر
از آنجا که n8n یک پلتفرم ماژولار است، این Workflow بهراحتی قابل توسعه است. برای مثال، پس از استخراج محتوا میتوانید:
- متن را برای خلاصهسازی به OpenAI ارسال کنید.
- دادهها را در یک Vector Database ذخیره کنید.
- نسخهای از محتوا را به Google Drive منتقل کنید.
- نتیجه را در Slack یا Telegram ارسال کنید.
- برای صفحات دارای خطا اعلان ایمیلی ایجاد کنید.
- اطلاعات را در سیستم CRM یا ERP سازمان ثبت کنید.
این قابلیت باعث میشود Workflow به بخشی از یک زنجیره بزرگتر اتوماسیون تبدیل شود.
مزایای استفاده از این Workflow
استفاده از این Template مزایای متعددی برای توسعهدهندگان، کارشناسان سئو، تیمهای تولید محتوا و پروژههای هوش مصنوعی دارد. مهمترین مزایا عبارتاند از:
-
استخراج خودکار محتوای صفحات وب
بدون نیاز به کدنویسی میتوانید محتوای تعداد زیادی صفحه را بهصورت خودکار دریافت کنید.
-
تبدیل HTML به Markdown
خروجی Markdown برای پردازش توسط مدلهای هوش مصنوعی، موتورهای جستجو و سیستمهای RAG بسیار مناسبتر از HTML خام است.
-
مدیریت هوشمند منابع سیستم
استفاده از Nodeهای Limit و Split in Batches باعث میشود حافظه سرور بهینه مصرف شده و Workflow حتی در پردازش حجم بالای URLها نیز پایدار باقی بماند.
-
رعایت محدودیت نرخ درخواست API
با استفاده از Node Wait، احتمال دریافت خطاهای مربوط به محدودیت API به میزان قابل توجهی کاهش مییابد.
-
انعطافپذیری بالا
تقریباً تمام بخشهای Workflow، از منبع داده گرفته تا مقصد ذخیرهسازی، قابل تغییر و سفارشیسازی هستند.
-
آمادهسازی داده برای پروژههای هوش مصنوعی
دادههای استخراجشده را میتوان مستقیماً در پروژههای مبتنی بر LLM، سیستمهای RAG، موتورهای جستجوی معنایی و پایگاههای دانش استفاده کرد.
-
قابلیت اتصال به صدها سرویس مختلف
به لطف n8n، امکان اتصال Workflow به انواع پایگاههای داده، سرویسهای ابری و ابزارهای همکاری تیمی وجود دارد.
-
کاهش نیاز به توسعه نرمافزار اختصاصی
بسیاری از فرآیندهایی که قبلاً نیازمند نوشتن اسکریپتهای پیچیده بودند، با این Template و چند تغییر ساده قابل انجام هستند.
نکات مهم هنگام استفاده از این Workflow
برای دستیابی به بهترین عملکرد، رعایت نکات زیر توصیه میشود:
- API Key سرویس Firecrawl را بهصورت امن نگهداری کنید. از قرار دادن آن در متن Workflow یا مخازن عمومی خودداری کنید و از Credentialهای n8n برای مدیریت آن استفاده کنید.
- قبل از پردازش تعداد زیادی URL، Workflow را با چند صفحه آزمایش کنید. این کار به شما کمک میکند از صحت تنظیمات و ساختار خروجی اطمینان حاصل کنید.
- محدودیت نرخ درخواستهای API را رعایت کنید. در صورت افزایش تعداد درخواستها بدون تنظیم مناسب Batchها یا زمان انتظار، ممکن است با خطای 429 مواجه شوید.
- مقادیر Nodeهای Limit و Split in Batches را متناسب با توان سرور تنظیم کنید. تنظیمات پیشفرض برای همه محیطها مناسب نیست و بهتر است بر اساس منابع سختافزاری و حجم دادهها بهینه شوند.
- در صورت پردازش هزاران URL، از یک پایگاه داده مناسب برای ذخیره نتایج استفاده کنید. ذخیره حجم زیاد داده در فایلهای موقت یا حافظه میتواند عملکرد Workflow را کاهش دهد.
- برای مدیریت خطاها از شاخههای اختصاصی Error یا اعلان استفاده کنید. افزودن Nodeهایی برای ثبت خطا یا ارسال اعلان به ایمیل، Slack یا Telegram میتواند نظارت بر اجرای Workflow را سادهتر کند.
- ساختار پاسخ API را پس از هر بهروزرسانی Firecrawl بررسی کنید. تغییر در نام یا ساختار فیلدها ممکن است نیازمند بهروزرسانی Expressionهای Node Set باشد.
- در صورت نیاز به پردازش همزمان، ابتدا محدودیتهای API و منابع سرور را ارزیابی کنید. افزایش تعداد درخواستها بدون برنامهریزی میتواند باعث کاهش پایداری Workflow شود.
- از خروجی Markdown برای پردازشهای بعدی استفاده کنید. این فرمت نسبت به HTML خواناتر، سبکتر و برای مدلهای زبانی و ابزارهای تحلیل متن مناسبتر است.
- بهصورت دورهای عملکرد Workflow را پایش و بهینهسازی کنید. بررسی زمان اجرا، نرخ خطا و مصرف منابع به شما کمک میکند تنظیمات مناسبتری برای پروژههای بزرگ انتخاب کنید.
Troubleshooting (عیبیابی و رفع خطاهای رایج)
هرچند این Workflow ساختار ساده و پایداری دارد، اما در هنگام راهاندازی یا اجرای آن ممکن است با خطاهایی مواجه شوید. در ادامه، رایجترین مشکلات، علت بروز آنها و روش رفع هر کدام را بررسی میکنیم.
خطای اول: دریافت خطای 401 Unauthorized
علت
این خطا معمولاً زمانی رخ میدهد که سرویس Firecrawl نتواند هویت درخواست را تأیید کند. دلایل متداول عبارتاند از:
- API Key اشتباه است.
- Credential به Node متصل نشده است.
- مقدار Header Authorization نادرست وارد شده است.
- API Key منقضی یا غیرفعال شده است.
راهحل
- API Key را در حساب Firecrawl بررسی کنید.
- Credential از نوع HTTP Header Authentication را مجدداً تنظیم کنید.
- مطمئن شوید Header با مقدار Authorization: Bearer YOUR_API_KEY ارسال میشود.
- در صورت نیاز یک API Key جدید ایجاد کنید.
خطای دوم: دریافت خطای 429 Too Many Requests
علت
این خطا نشان میدهد تعداد درخواستهای ارسالی در بازه زمانی کوتاه از محدودیت مجاز سرویس Firecrawl بیشتر شده است.
معمولاً این مشکل زمانی رخ میدهد که:
- مقدار Batch Size بیش از حد زیاد باشد.
- زمان انتظار بین Batchها کافی نباشد.
- تعداد زیادی Workflow بهصورت همزمان اجرا شوند.
راهحل
- مقدار Batch Size را کاهش دهید.
- زمان Node Wait را افزایش دهید.
- از اجرای همزمان چند Workflow مشابه خودداری کنید.
- در صورت نیاز، پلن Firecrawl خود را ارتقا دهید.
خطای سوم: دریافت پاسخ خالی از Firecrawl
علت
گاهی درخواست با موفقیت ارسال میشود، اما پاسخ شامل محتوای مورد انتظار نیست.
این موضوع میتواند به دلایل زیر باشد:
- صفحه مقصد وجود ندارد.
- URL اشتباه وارد شده است.
- وبسایت مقصد دسترسی رباتها را مسدود کرده است.
- صفحه هنوز منتشر نشده یا حذف شده است.
راهحل
- URL را در مرورگر بررسی کنید.
- از معتبر بودن آدرس صفحه اطمینان حاصل کنید.
- چند URL مختلف را آزمایش کنید.
- در صورت محدود بودن دسترسی سایت مقصد، از روشهای جایگزین برای دریافت اطلاعات استفاده کنید.
خطای چهارم: اجرای Workflow بسیار کند است
علت
کند بودن اجرای Workflow معمولاً به یکی از دلایل زیر رخ میدهد:
- تعداد URLها زیاد است.
- زمان Wait بالا تنظیم شده است.
- پاسخ API با تأخیر دریافت میشود.
- منابع سختافزاری سرور محدود هستند.
راهحل
- تعداد URLهای هر اجرا را کاهش دهید.
- از سرور با RAM و CPU قویتر استفاده کنید.
- در صورت امکان Batch Size را متناسب با ظرفیت API افزایش دهید.
- عملکرد شبکه و سرعت اتصال اینترنت را بررسی کنید.
خطای پنجم: خطا در Node «Markdown Data and Links»
علت
این خطا معمولاً زمانی رخ میدهد که ساختار پاسخ API تغییر کرده یا یکی از فیلدهای مورد انتظار وجود نداشته باشد.
برای مثال:
- مقدار
metadata.titleوجود ندارد. - فیلد
markdownخالی است. - API ساختار JSON متفاوتی برگردانده است.
راهحل
- خروجی Node HTTP Request را بررسی کنید.
- Expressionهای موجود در Node Set را با ساختار جدید پاسخ هماهنگ کنید.
- در صورت نیاز از شرطهایی مانند مقدار پیشفرض (Default Value) برای جلوگیری از خطا استفاده کنید.
خطای ششم: پردازش همه URLها انجام نمیشود
علت
اگر فقط بخشی از URLها پردازش شوند، معمولاً یکی از موارد زیر رخ داده است:
- مقدار Node Limit کمتر از تعداد URLها است.
- Workflow قبل از پایان اجرا متوقف شده است.
- خطایی در یکی از Batchها رخ داده و ادامه فرآیند متوقف شده است.
راهحل
- مقدار Limit را بررسی و در صورت نیاز افزایش دهید.
- Execution Log را برای شناسایی محل توقف Workflow بررسی کنید.
- برای مدیریت بهتر خطاها از مسیرهای اختصاصی Error استفاده کنید.
خطای هفتم: مصرف بیش از حد حافظه (RAM)
علت
پردازش تعداد زیادی URL بهصورت همزمان میتواند باعث افزایش مصرف حافظه شود.
این مشکل بیشتر در سرورهای با منابع محدود مشاهده میشود.
راهحل
- مقدار Node Limit را کاهش دهید.
- Batch Size را کوچکتر انتخاب کنید.
- Workflow را در چند مرحله اجرا کنید.
- در صورت نیاز منابع سختافزاری سرور را ارتقا دهید.
جمعبندی
تبدیل صفحات وب به Markdown با n8n یکی از کاربردیترین روشها برای استخراج و آمادهسازی محتوای وب در پروژههای اتوماسیون و هوش مصنوعی است. این Workflow با استفاده از سرویس Firecrawl، صفحات وب را به دادهای ساختاریافته، تمیز و قابل پردازش تبدیل میکند و اطلاعاتی مانند عنوان صفحه، توضیحات متا، محتوای Markdown و لینکهای موجود را استخراج میکند.
طراحی این Template بر پایه مدیریت هوشمند منابع انجام شده است؛ بهگونهای که با استفاده از Nodeهای Limit، Split in Batches و Wait، علاوه بر جلوگیری از مصرف بیش از حد حافظه، محدودیت نرخ درخواستهای API نیز رعایت میشود. این ویژگی باعث میشود Workflow بتواند حتی در پروژههایی با تعداد زیاد URL، عملکردی پایدار و قابل اعتماد داشته باشد.
از سوی دیگر:
از سوی دیگر، ساختار ماژولار Workflow امکان شخصیسازی گسترده را فراهم میکند. شما میتوانید منبع دریافت URLها، سرویس ذخیرهسازی خروجی، تعداد Batchها، زمان انتظار، ساختار دادههای خروجی و حتی سرویس استخراج محتوا را متناسب با نیاز پروژه خود تغییر دهید. به همین دلیل، این Template نهتنها برای استخراج محتوای صفحات وب، بلکه برای ساخت پایگاههای دانش، سیستمهای RAG، تحلیل محتوا، آرشیو اسناد و بسیاری از پروژههای مبتنی بر هوش مصنوعی انتخابی مناسب و توسعهپذیر به شمار میآید.


