Veb sahifalardan ma'lumotlarni avtomatik yig'ish xizmati (web scraping)
- 1. Arxitektura Standarti: "Markazlashgan Baza" Modeli Barcha komponentlar bir-biri bilan to'g'ridan-to'g'ri emas, balki umumiy ma'lumotlar bazasi va navbatlar (queues) orqali gaplashishi kerak.
- Selenium/Playwright (Scraper): Ma'lumotni yig'adi va bazaga (PostgreSQL/MySQL) "xom" holatda saqlaydi.
- Laravel/Web (Backend): Ushbu ma'lumotlarni qayta ishlaydi, admin panel orqali boshqarish imkonini beradi va API taqdim etadi.
- Aiogram (Bot): Foydalanuvchiga ma'lumotni yetkazadi yoki foydalanuvchi buyrug'i bilan skraperni ishga tushiradi.
- 2. O'zaro bog'liqlik mexanizmlari (Integration Standards) Ushbu qismlarni bir-biriga "yopishtirish" uchun quyidagi usullardan foydalanish standart hisoblanadi:
- A. Ma'lumotlar Almashinuvi (Shared Database) Barcha tizimlar uchun yagona haqiqat manbai — ma'lumotlar bazasi bo'lishi shart.
- Scraper yangi ma'lumot topsa, bazadagi status ustunini new deb belgilaydi.
- Telegram Bot har safar bazani tekshirmaydi; buning o'rniga Redis yoki RabbitMQ kabi navbat tizimidan foydalaniladi.
- B. Trigger Tizimi (Webhooks & API) Agar foydalanuvchi bot orqali "Hozir falon saytni skraping qil" desa:
- Bot Laravel API-ga so'rov yuboradi.
- Laravel o'z navbatida fondagi (background task) skraperni ishga tushiradi.
- Skraper ishini tugatgach, Webhook orqali botga "Tayyor" xabarini yuboradi.
- 3. Selenium uchun "Headless" va "Anti-Bot" Standarti Serverda (masalan, Rocky Linux 9 da) Selenium bilan ishlashda quyidagi qoidalarga amal qilish kerak:
- Headless Mode: GUI-siz brauzer ishlatish (resursni tejash uchun).
- Proxy Rotation: Saytlar bloklamasligi uchun IP-larni doimiy almashtirish.
- User-Agent Spoofer: Har safar har xil brauzer kabi ko'rinish.
- 4. Texnologik Stek tavsiyasi (Sizning loyihalaringiz asosida) Komponent Tavsiya etilgan texnologiya Vazifasi Backend Laravel 12 Ma'lumotlar boshqaruvi, API, Admin Panel. Bot Python (Aiogram 3.x) Foydalanuvchi interfeysi, tezkor xabarnomalar. Scraper Python (Playwright/Selenium) Ma'lumot yig'ish (Playwright Seleniumdan tezroq va barqarorroq). Task Runner Celery yoki Redis Skraperni fonda (background) navbat bilan ishlatish.
Xizmat narxi:
2 000 000 so'm
Xususiyatlari
Dasturlash tillar:
PHP, Python,