این مقاله درباره

پاک‌سازی داده

پاک‌سازی داده بعد از اسکرپ یعنی قیمت، تاریخ و خالی را استاندارد کنید تا CSV و API قابل مقایسه شوند — نه مدل یادگیری ماشین.

پاک‌سازی داده اسکرپ؛ تکرار، واحد پول، تاریخ و فیلد خالی

نوشته شده توسط محمد اصل زنجانی

بازبینی‌شده توسط روبینش

اولین نظر را بدهید — امتیاز خوانندگان روبینش

اگر می‌پرسید پاک‌سازی داده بعد از اسکرپ یعنی چه، پاسخ این است: تبدیل خروجی خام صفحه به رکوردی که تیم بتواند مقایسه کند — بدون تکرار پنهان، بدون قیمت متنی، بدون تاریخ مبهم و بدون خالی‌ای که صفر جا زده شده باشد. پاک‌سازی اسکرپ، مدل یادگیری ماشین نیست و جایگزینی برای استخراج درست هم نیست. کارش این است که همان فیلد توافق‌شده، با همان معنی، در CSV یا API بعدی تکرار شود.

پیشنهاد گوگل و جست‌وجوهای نزدیک معمولاً این نیت را دارند: «پاکسازی داده چیست»، «نرمال سازی قیمت»، «واحد پول در داده»، «فیلد خالی CSV»، «حذف داده تکراری»، «استاندارد کردن تاریخ» و «تحویل JSON بعد از اسکرپ». در این راهنما چرا دادهٔ خام کافی نیست، نرمال‌سازی قیمت، تاریخ و منطقه، فیلد خالی، و تحویل را می‌نویسیم. استخراج فیلد را در اسکرپ دیتا چیست ببینید، هویت کالا را در استخراج داده محصول، و اجرا را در خدمت اسکرپ داده روبینش.

CSV is a simple file format used to store tabular data. Each line is a data record, and each record consists of one or more fields, separated by commas.

منبع: W3C — CSV on the Web: A Primer
داشبورد پاک‌سازی داده فارسی: قیمت خام، عدد و واحد روی لپ‌تاپ — روبینش | Rubinesh
قواعد پاک‌سازی باید قابل بازبینی باشد، نه یک اسکریپت بی‌نام.

چرا داده خام اسکرپ کافی نیست؟

صفحه برای انسان نوشته شده است. «۱۲ میلیون تومان»، «12,000,000»، «۱٫۲ میلیارد» و «تماس بگیرید» ممکن است در یک ستون بنشینند. بدون قاعده، میانگین قیمت دروغ می‌گوید و هشدار تغییر بی‌خودی روشن می‌شود. عنوان با فاصلهٔ اضافه، ی و ک عربی، و پسوند «فروش ویژه» همان کالا را دو بار می‌سازد. URL با پارامتر ردیابی همان صفحه را دو ردیف می‌کند.

پاک‌سازی یعنی نسخهٔ خام را نگه دارید و نسخهٔ کار را از روی قواعد مستند بسازید. اگر فقط فایل نهایی را نگه دارید، فردا نمی‌فهمید عدد از کجا آمده. قاعده باید آن‌قدر روشن باشد که عضو جدید تیم همان تبدیل را تکرار کند. حدس در جلسهٔ فروش جای قاعده را نمی‌گیرد.

این کار با تطبیق محصول یکی نیست. تطبیق می‌گوید دو ردیف همان SKUاند. پاک‌سازی می‌گوید هر ردیف از نظر نوع و واحد قابل خواندن است. اول پاک‌سازی، بعد تطبیق. برعکسش کلید را روی زباله می‌سازد. تکراری آگهی را در اسکرپ آگهی املاک جدا ببینید؛ اینجا نوع فیلد است نه هویت ملک.

خام در برابر قابل استفاده
فیلد نمونه خام بعد از پاک‌سازی
قیمت ۱۲ میلیون تومان 12000000 + IRR + زمان
تاریخ ۱۴۰۳/۰۶/۱۲ تاریخ استاندارد + منطقهٔ زمانی
خالی سلول تهی یا «-» null با کد دلیل، نه صفر
تکرار دو URL با UTM مختلف یک کلید نرمال

نرمال‌سازی قیمت یعنی چه؟

قیمت قابل مقایسه عدد است، واحد دارد، و زمان برداشت کنارش است. جداکنندهٔ هزارگان فارسی و انگلیسی، ریال و تومان، و «از» در قیمت بازه را جدا کنید. قیمت خط‌خورده و قیمت نهایی ستون جدا باشند. «تماس بگیرید» را صفر نکنید؛ وضعیت «قیمت نامشخص» بگذارید. صفر دروغین در پایش، تخفیف جعلی می‌سازد.

نرمال‌سازی قیمت فارسی به عدد و واحد پول روی دو مانیتور — روبینش | Rubinesh
واحد را حدس نزنید؛ اگر صفحه نگفته، فیلد را خالی معتبر بگذارید.

تبدیل تومان به ریال را در یک نقطهٔ قاعده انجام دهید و ضریب را مستند کنید. قاطی کردن دو واحد در یک ستون، جهش مصنوعی می‌سازد. برای صرافی، نرخ را با زمان و منبع نگه دارید نه با اسکرین مبهم — طراحی سایت صرافی. پایش روند را در مانیتورینگ قیمت رقبا بخوانید؛ اینجا فقط می‌گوییم بدون نرمال، روند بی‌معنی است.

رقم فارسی را به رقم محاسبه تبدیل کنید. فاصله و «تومان» را از عدد جدا کنید. اگر بازه دارید، حداقل و حداکثر را دو فیلد کنید نه یک رشته. نمونه را با ده رکورد واقعی بسنجید قبل از اجرای کامل.

تاریخ و منطقه را استاندارد کنید

تاریخ آگهی، تاریخ تور و زمان برداشت سه معنی جدا دارند. هرکدام ستون جدا می‌خواهند. تقویم شمسی و میلادی را در تبدیل مشخص کنید و منطقهٔ زمانی را بنویسید. «دیروز» روی صفحه ارزش ذخیره‌سازی ندارد؛ زمان مشاهدهٔ شما ارزش دارد.

منطقه را از متن آزاد جدا کنید. «تهرانپارس» و «تهران پارس» اگر یک محله‌اند، در نگاشت بنویسید. فیلتر بی‌پایان را دوباره نسازید؛ محلهٔ توافق‌شده کافی است. گردشگری تاریخ تور را با تاریخ برداشت قاطی نکند — طراحی سایت گردشگری. رستوران ساعت کاری را به‌عنوان تاریخ برداشت ذخیره نکند؛ ویترین را در طراحی سایت رستوران جدا نگه دارید.

با فیلد خالی چه کنیم؟

خالی سه حالت دارد: صفحه فیلد را نشان نداده، سلکتور شکسته، یا مقدار «ناموجود» است. هر سه را یکسان نکنید. کد دلیل بگذارید: not_on_page، parse_failed، explicit_unavailable. پر کردن خالی با میانگین یا صفر، برای قیمت فروش خطرناک است. حذف همهٔ ردیف‌های ناقص هم ممکن است نمونه را کج کند اگر فقط کالاهای گران مشخصات کامل دارند.

ستون حیاتی را از ستون اختیاری جدا کنید. بدون URL منبع یا بدون کلید هویت، ردیف را در خروجی تصمیم نگذارید. بدون تصویر، ردیف می‌تواند برای پایش قیمت زنده بماند. این تصمیم را در قرارداد فیلد بنویسید نه در ذهن برنامه‌نویس.

تحویل CSV و API بعد از پاک‌سازی

CSV وقتی ستون پایدار و یک مقدار در سلول دارید مناسب است. رمزگذاری UTF-8، جداکننده و اعشار را با Excel فارسی تست کنید. JSON وقتی تنوع، چند تصویر یا کد خطا تودرتو است. هر دو باید همان زمان برداشت و همان نسخهٔ قاعده را داشته باشند. نام فیلد را بین اجراها عوض نکنید مگر نسخه بدهید.

خروجی CSV پاک‌شده کنار پیش‌نمایش JSON با تاریخ برداشت — روبینش | Rubinesh
فایل کار و نسخهٔ خام را با هم تحویل دهید تا اختلاف قابل پیگیری باشد.

API داخلی باید همان قاعده را اعمال کند نه اینکه خام را به داشبورد بدهد. اگر سلکتور در رندر جاوااسکریپت می‌شکند، اول منبع را در اسکرپ با Playwright پایدار کنید؛ پاک‌سازی روی HTML غلط فقط زبالهٔ تمیز می‌سازد. قرارداد دسترسی را در تفاوت اسکرپ و API ببینید اگر اصلاً صفحه نباید منبع باشد.

اشتباهات رایج پاک‌سازی داده اسکرپ

  • صفر گذاشتن به‌جای قیمت نامشخص
  • ریال و تومان در یک ستون
  • حذف خام بعد از تبدیل
  • قاعده فقط در ذهن یک نفر
  • تطبیق قبل از نرمال نوع فیلد
  • تغییر نام ستون بین دو تحویل
  • پر کردن خالی با میانگین برای تصمیم فروش

چک‌لیست قبل از تحویل دادهٔ پاک

  1. نسخهٔ خام و نسخهٔ کار هر دو موجودند.
  2. قیمت عدد، واحد و زمان جدا هستند.
  3. خالی کد دلیل دارد، صفر دروغین ندارد.
  4. تاریخ معنی‌اش روی برچسب ستون است.
  5. URL نرمال شده و تکرار پنهان کم شده است.
  6. CSV در ابزار مقصد با فارسی درست باز می‌شود.
  7. نسخهٔ قاعده در فایل همراه آمده است.
  8. نمونهٔ دستی با صفحهٔ منبع مقایسه شده است.

جمع‌بندی: خام را نگه دارید، کار را استاندارد کنید

پاک‌سازی داده یعنی نوع، واحد و خالی را قبل از تصمیم درست کنید. قیمت متنی، تاریخ مبهم و تکرار URL گزارش را خراب می‌کنند. CSV و API فقط وقتی مفیدند که همان قاعده را تکرار کنند. پوشش بازار و رتبه وعده نیست.

اگر می‌خواهید قواعد فیلد را روی منبع مجاز خودتان بگذارید، از صفحه اسکرپ داده روبینش و فرم مشاوره شروع کنید. این مقاله تعرفه نمی‌سازد. ده رکورد با قاعدهٔ مکتوب، از هزار ردیف خام برای جلسهٔ بعد مفیدتر است.

سؤالات متداول

پاک‌سازی داده همان تطبیق محصول است؟

خیر. تطبیق می‌گوید دو ردیف همان کالا هستند. پاک‌سازی می‌گوید هر فیلد از نظر نوع، واحد و خالی قابل خواندن است. اول پاک‌سازی، بعد تطبیق.

قیمت «تماس بگیرید» را صفر کنیم؟

خیر. صفر دروغین در پایش، تخفیف جعلی می‌سازد. وضعیت «قیمت نامشخص» بگذارید و نسخهٔ خام را نگه دارید.

فایل خام را بعد از تبدیل حذف کنیم؟

خیر. بدون خام نمی‌فهمید عدد از کجا آمده. نسخهٔ کار را از روی قواعد مستند بسازید و هر دو را تحویل دهید.

CSV بهتر است یا JSON؟

جدول ساده با ستون پایدار CSV. چند تصویر یا کد خطای تودرتو JSON. نام فیلد را بین اجراها عوض نکنید مگر نسخه بدهید.

پاک‌سازی اسکرپ را از کدام صفحه سفارش دهیم؟

مسیر اجرا در صفحه اسکرپ داده روبینش است. این مقاله قواعد فیلد را می‌گوید نه تعرفه را.