اچتیامال
HTML
استخراج داده از HTML: Web Scraping، CSS Selector و XPath
نمای کلی
نود HTML چیست؟
نود HTML ابزار قدرتمندی برای کار با محتوای HTML در n8n است. دو عملیات اصلی دارد:
- 1Extract HTML Content: استخراج داده از HTML با CSS Selector
- 2Generate HTML Table: ساخت جدول HTML از داده JSON
قابلیتهای کلیدی:
- استخراج متن، لینک، تصویر و هر عنصر HTML
- پشتیبانی از CSS Selectors (مثل jQuery)
- استخراج Attribute های عناصر (href, src, class)
- تبدیل HTML به Plain Text
- ساخت جدول HTML از دادههای JSON
- کار با innerHTML و outerHTML
کاربردهای HTML:
- Web Scraping و استخراج داده
- مانیتورینگ قیمت محصولات
- استخراج اطلاعات تماس از وبسایتها
- خواندن لیست محصولات فروشگاهها
- استخراج عناوین اخبار
- تبدیل HTML ایمیل به متن ساده
- ساخت گزارشهای HTML
احراز هویت
بدون نیاز به احراز هویت - نود HTML یک نود داخلی n8n است. برای دریافت HTML صفحات وب، ابتدا از HTTP Request نود استفاده کنید و سپس خروجی آن را به نود HTML بدهید.
عملیاتهای موجود
استخراج محتوای HTML
استخراج داده از HTML با استفاده از CSS Selector. میتوانید متن، لینک، تصویر و هر عنصر دیگری را استخراج کنید.
ساخت جدول HTML
تبدیل داده JSON به جدول HTML زیبا. مناسب برای ارسال گزارش در ایمیل.
تبدیل HTML به متن
حذف تگهای HTML و استخراج متن خالص. مناسب برای پردازش NLP و ذخیره در دیتابیس.
استخراج لینکها
استخراج همه لینکهای موجود در HTML با متن و URL آنها.
استخراج تصاویر
استخراج URL و alt text همه تصاویر از HTML.
استخراج جدول
تبدیل جدول HTML به آرایه JSON. هر ردیف یک آبجکت با کلیدهای هدر.
استخراج Meta Tags
استخراج اطلاعات Meta از HTML: title, description, og:image و غیره.
کاربردهای متداول
موارد استفاده رایج
۱. مانیتورینگ قیمت
HTTP Request > HTML Extract (.price-current) > مقایسه با قیمت قبلی > اعلان در Telegram اگر تغییر کرد.
۲. جمعآوری اخبار
دریافت صفحه خبرگزاری > HTML Extract (h2.title, p.summary) > ذخیره در دیتابیس > ارسال خلاصه روزانه.
۳. استخراج محصولات فروشگاه
Scrape صفحه دستهبندی > Extract (نام، قیمت، تصویر، لینک) > ذخیره در Google Sheets > مقایسه قیمت.
۴. ساخت گزارش ایمیلی
دریافت داده از API > Generate HTML Table > ارسال ایمیل با جدول زیبا به مدیر.
۵. استخراج اطلاعات تماس
Scrape صفحه تماس > Extract (ایمیل، تلفن، آدرس) > ذخیره در CRM (HubSpot/Salesforce).
۶. تبدیل ایمیل HTML به متن
دریافت ایمیل HTML > HTML to Text > پردازش با AI > پاسخ خودکار.
۷. مانیتورینگ موجودی
بررسی صفحه محصول > Extract (.stock-status) > اگر "موجود" شد، اعلان بده.
۸. Scraping لیست مشاغل
دریافت صفحه کاریابی > Extract (عنوان شغل، شرکت، حقوق) > فیلتر > اعلان.
۹. استخراج نظرات کاربران
Scrape صفحه محصول > Extract (.review-text, .rating) > تحلیل احساسات با AI.
۱۰. ساخت RSS از سایت بدون RSS
Scrape صفحه بلاگ > Extract (عنوان، لینک، تاریخ) > ساخت XML RSS Feed.
نکات حرفهای
نکات و ترفندها
CSS Selector مفید
.class-name: انتخاب با کلاس#element-id: انتخاب با IDdiv > p: فرزند مستقیمdiv p: همه فرزندانa[href*="example"]: لینکهای حاوی "example":nth-child(2): دومین عنصر:first-child,:last-child: اولین و آخرین.class1.class2: عناصر با هر دو کلاس[data-price]: عناصر با attribute خاص
ترکیب HTTP Request + HTML
- 1HTTP Request: GET صفحه وب
- 2Response Format: String (نه JSON)
- 3HTML Extract: اعمال CSS Selector
- 4نتیجه: داده ساختاریافته
Web Scraping اخلاقی
- robots.txt سایت را بررسی کنید
- بین درخواستها تأخیر بگذارید (Wait node)
- User-Agent معتبر تنظیم کنید
- دادههای شخصی را جمعآوری نکنید
- Terms of Service سایت را رعایت کنید
Extract چند مقدار
یک نود HTML میتواند چند Selector داشته باشد:
- Selector 1: .product-name → نام محصول
- Selector 2: .product-price → قیمت
- Selector 3: .product-image img@src → URL تصویر
بهینهسازی Performance
- فقط داده مورد نیاز را استخراج کنید
- از CSS Selector سادهتر استفاده کنید
- صفحات بزرگ را با Pagination پردازش کنید
- نتایج را Cache کنید
ساخت جدول ایمیل زیبا
- از Generate HTML Table استفاده کنید
- CSS inline اضافه کنید (ایمیل CSS محدود دارد)
- رنگبندی ردیفها (zebra striping)
- عرض ثابت برای ستونها
ادغام با سایر نودها
- HTTP Request: دریافت HTML صفحه وب
- Code: پردازش پیچیده HTML
- IF: شرط بر اساس محتوای استخراجی
- Loop: Scrape چندین صفحه
- Spreadsheet: ذخیره داده استخراجی
- AI Agent: تحلیل محتوای استخراجی
رفع مشکلات
عیبیابی
۱. CSS Selector کار نمیکند
مشکل: عنصر مورد نظر پیدا نمیشود راهحل: از DevTools مرورگر (F12) CSS Selector را تست کنید. از specificity بیشتر استفاده کنید (div.class > span).
۲. محتوای Dynamic بارگذاری نمیشود
مشکل: محتوایی که با JavaScript رندر میشود، در HTML وجود ندارد راهحل: از Headless Browser (Puppeteer) استفاده کنید. یا API endpoint اصلی سایت را پیدا کنید.
۳. Encoding فارسی خراب است
مشکل: کاراکترهای فارسی به صورت علامت سوال یا کد نمایش داده میشوند راهحل: مطمئن شوید HTTP Request با encoding UTF-8 دریافت میشود. Response type را text تنظیم کنید.
۴. لینکهای نسبی کامل نیستند
مشکل: لینکها فقط path هستند (مثل /page.html) راهحل: baseUrl را تنظیم کنید تا لینکهای نسبی به مطلق تبدیل شوند.
۵. IP بلاک شده
مشکل: سایت هدف IP را بلاک کرده راهحل: از Wait نود بین درخواستها استفاده کنید. User-Agent را تنظیم کنید. از Proxy استفاده کنید.
۶. ساختار HTML تغییر کرده
مشکل: Selector دیگر کار نمیکند چون سایت آپدیت شده راهحل: از Selectorهای انعطافپذیر استفاده کنید. مانیتورینگ خطا تنظیم کنید.
۷. جدول HTML خروجی ندارد
مشکل: Generate HTML Table خالی است راهحل: ورودی باید آرایه JSON باشد. بررسی کنید داده قبل از نود HTML وجود دارد.
۸. Multiple Elements فقط اولی برمیگردد
مشکل: فقط یک عنصر استخراج میشود راهحل: Return Array را فعال کنید تا همه عناصر منطبق برگردند.
