دقیقاً چه کاری باید انجام شود؟
عنوان پروژه
طراحی سیستم خودکار استخراج اطلاعات آگهیهای List.am و ذخیره در Excel/Database
توضیحات پروژه
به یک برنامهنویس باتجربه در Python، Web Scraping و Data Extraction نیاز دارم تا سیستمی برای جمعآوری خودکار و منظم اطلاعات آگهیها* طراحی کند.
هدف این است که سیستم بتواند تعداد زیادی آگهی را پردازش کرده، اطلاعات موردنیاز را استخراج و بهصورت ساختاریافته در Excel/CSV یا Database ذخیره کند.
اطلاعات موردنیاز
برای هر آگهی موارد زیر استخراج شود:
- لینک آگهی
- عنوان
- دستهبندی
- نام فروشنده یا آژانس
- شماره تلفن
- شماره WhatsApp در صورت وجود
- شماره Viber در صورت وجود
- قیمت
- موقعیت / آدرس
- توضیحات آگهی
- تاریخ آگهی در صورت وجود
- تاریخ و زمان استخراج اطلاعات
اتوماسیون
سیستم باید تا حد امکان Automated باشد و نیاز به Copy/Paste دستی هر آگهی نداشته باشد.
کاربر بتواند یک Category / Search URL / مجموعهای از URLها به برنامه بدهد و سیستم بهصورت خودکار صفحات و آگهیها را پردازش کند.
سیستم باید قابلیت پردازش تعداد زیادی آگهی و چندین صفحه را داشته باشد و در صورت امکان بهصورت زمانبندیشده اجرا شود.
شماره تلفن و محدودیتهای سایت
استخراج شمارههای تماس یکی از مهمترین بخشهای پروژه است.
برنامهنویس باید ابتدا بررسی کند شماره تلفن و سایر اطلاعات در List.am چگونه نمایش یا بارگذاری میشوند و بهترین روش پایدار برای استخراج اطلاعات قابل دسترس را طراحی کند.
ممکن است هنگام اتوماسیون با محدودیتهایی مانند Rate Limit، CAPTCHA، Cloudflare، Session Expiration یا سایر Anti-Bot mechanisms مواجه شویم.
در این صورت، فریلنسر باید مشکل را بررسی کرده و راهکار فنی مناسب، پایدار و مجاز برای ادامه کار پیشنهاد و پیادهسازی کند؛ برای مثال استفاده از API رسمی/مجاز در صورت وجود، مدیریت صحیح Session، Rate Limiting، Browser Automation، یا در صورت نیاز قرار دادن مرحلهای برای حل CAPTCHA توسط کاربر و سپس ادامه خودکار پردازش.
هدف این است که سیستم در صورت مواجهه با CAPTCHA یا محدودیت مشابه، صرفاً Crash یا Stop نشود و بتواند مشکل را تشخیص دهد، به کاربر اطلاع دهد و پس از انجام مرحله لازم، پردازش را ادامه دهد.
شکستن یا دور زدن غیرمجاز CAPTCHA، Cloudflare، کنترلهای دسترسی یا سایر مکانیزمهای امنیتی موردنظر نیست؛ اما مدیریت عملی این محدودیتها و ارائه راهکار قابل اتکا برای ادامه قانونی و پایدار سیستم بخشی از پروژه است.
پایداری سیستم
سیستم باید برای استفاده مداوم طراحی شود و شامل موارد زیر باشد:
- Error Handling و Logging
- Retry برای خطاهای موقت
- Rate Limiting مناسب
- Resume بعد از توقف
- جلوگیری از Duplicate
- استانداردسازی شماره تلفنها
- تشخیص آگهیهای جدید
- ذخیره وضعیت پردازش
- امکان ادامه بدون شروع مجدد
ساختار کد باید طوری باشد که اگر HTML، Selector یا ساختار معمول صفحات سایت تغییر کرد، اصلاح Scraper ساده باشد.
خروجی
اطلاعات باید در Excel / CSV ذخیره شوند؛ هر آگهی در یک ردیف و هر فیلد در ستون جداگانه.
استفاده از SQLite/PostgreSQL برای نگهداری دادهها و سپس Export به Excel نیز قابل قبول است.
تحویل پروژه
- Source Code کامل
- فایل اجرایی یا روش ساده اجرای Python
- Excel/CSV Export
- Requirements
- راهنمای نصب و استفاده
- Logging و Error Handling
- تست روی تعداد قابلتوجهی آگهی
پشتیبانی
به دلیل احتمال تغییر ساختار سایت، حداقل ۶ ماه پشتیبانی موردنظر است.
اگر طی این مدت تغییرات معمول سایت مانند HTML Structure، Selector یا روش نمایش اطلاعات باعث اختلال در سیستم شود، فریلنسر باید کد را بهروزرسانی کند.
هنگام ارسال پیشنهاد لطفاً اعلام کنید:
چه روشی برای استخراج خودکار اطلاعات List.am پیشنهاد میکنید؟
استخراج شمارههای تماس قابل دسترس را چگونه انجام میدهید؟
در صورت مواجهه با CAPTCHA، Cloudflare یا Rate Limit چه راهکار مجاز و پایداری پیشنهاد میکنید؟
حدوداً چه تعداد آگهی در ساعت/روز قابل پردازش است؟
برای Duplicate Prevention و Resume چه روشی پیشنهاد میکنید؟
آیا تجربه Scraping در مقیاس بالا دارید؟
زمان و قیمت نهایی پروژه چقدر است؟
آیا ۶ ماه پشتیبانی برای تغییرات معمول سایت ارائه میدهید؟
هدف ساخت یک اسکریپت یکبارمصرف نیست؛ به دنبال یک ابزار پایدار، خودکار و قابل نگهداری برای جمعآوری اطلاعات آگهیها در مقیاس بالا هستیم.