GithubHelp home page GithubHelp logo

muhandis-kh / arzon.uz Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 35.27 MB

Internet do'konlardagi mahsulot narxlarini solishtirish uchun API

Home Page: https://arzon-uz.vercel.app

Python 15.17% JavaScript 39.29% PowerShell 6.16% Batchfile 0.43% CSS 38.52% Procfile 0.01% Shell 0.41%

arzon.uz's Introduction

ARZON.uz (ishchi nomi)

Note

Loyiha demo holatda

GitHub top language

Loyiha haqida

Bu loyiha internet-do'konlaridan narxlarni solishtirish va ularni DRF orqali API holiga keltirish uchun yaratilgan.

Loyihani yaratishda bir nechta internet saytlaridan ma'lumotlarni olish uchun Selenium va BeatifulSoup ishlatildi, bazi saytlardan esa saytning foydalanuvchilar mahsulotni qidirishi uchun ishlatilgan API sidan foydalanildi.

Foydalanilgan saytlar
  1. asaxiy.uz
  2. olcha.uz
  3. zoodmall.uz
  4. sello.uz
  5. texnomart.uz

Barcha taklif, savol va ogohlantirishlar uchun telegramdan menga bog'lanishingiz mumkin.

Loyiha test rejimida ishlamoqda, iltimos xatoga duch kelganingizda menga xabar qiling.

Bu loyiha hozir sinov bosqichidan o'tmoqda. Agarda biror xatolikka duchor bo'lsangiz, xatolik haqida xabardor qilishni unutmang.

Loyihani demo holatda https://arzonuz.up.railway.app/search-product/?query=query yoki https://arzon-uz.vercel.app/search-product/?query=query yoki https://arzon-uz.onrender.com/search-product/?query=query ushbu manzillardan biriga query o'rniga mahsulot nomini kiritish orqali ishlatib ko'rish mumkin. Loyiha bepul serverda joylashganligi va resurslar cheklanganligi uchun loyihadan foydalanish kunlik 10 ta so'rov bilan cheklangan.

Loyihani ishlab chiqishda uchralgan qiyinchiliklar va yechimlari STAR metodi orqali

1-muammo. Internet-do'konlaridan ma'lumotlarni yig'ish uchun mavjud uslublardan eng maqbuluni tanlash
  • Situation: Internet-do'konlaridan ma'lumotlarni yig'ish uchun mavjud uslublardan eng maqbuluni tanlash
  • Task: Ma'lumotlarni to'plash uchun bir necha usullar mavjud va ularning kamchilik va ustunliklarini taqqoslash kerak
  • Action: Buning uchun mavjud usullarni o'rganishni boshladim. Internet saytini scraping qilish uchun ilk usullardan biri selenium, request va BeatifulSoup kutubxonalaridan foydalanish. Selenium afzalligi javascript kutubxonalari bilan hosil qilingan internet saytlaridan ham ma'lumotlarni olish mumkinligi edi lekin selenium loyihaning sekin ishlashiga sabab bo'lishi mumkin, shuni hisobga olgan holda avvalo ma'lumotlarni olmoqchi bo'lgan internet-do'konlaridan yuborilgan so'rovlar qaysi API ga yuborilganligini browserda developer tool orqali kuzatdim. Bu usul orqali asaxiy.uz dan tashqari qolgan internet-do'konlarda foydalanuvchi mahsulot qidirganda ishlatiladigan API manzilini topdim va API kutadigan headerslarni error messagelar orqali aniqlab, har bir sayt uchun sozladim. asaxiy.uz uchun avvaliga seleium bilan scraping qilish yo'llarini tanladim.
  • Result: Bu orqali loyihadagi asosiy muammo yechildi va keyingi qadamlar belgilandi
2-muammo. Asaxiy.uz uchun selenium bilan yozilgan funksiya loyiha tezligini sekinlashtirdi
  • Situation: Asaxiy.uz uchun selenium orqali yozilgan funksiyalar bepul server internet-tezligi va saytlarning yuklanish uchun kutish vaqtlari uzun bo'lganligi uchun API ga yuborilgan so'rovdan javob kelishi 3-5 daqiqagacha cho'zildi
  • Task: Muammoga sabab bo'lgan funksiyani request kutubxonasi bilan o'zgartirish
  • Action: Ma'lumotlarni olish uchun selenium orqali qilingan funksiyani, request bilan o'zgartirdim, lekin sayt API siga ruhsat bo'lmaganligi uchun mahsulot qidirish linki orqali mahsulot ma'lumotlarini HTML ko'rinishida olib va ma'lumotlarni BeatifulSoup orqali ajratib oldim
  • Result: Funksiya o'zgartirilganidan so'ng serveridan javob kelishi 7-12 (25 barobar) soniyaga qadar tezlashdi, buning natijasida API tezligi sezilarli o'sdi
3-muammo. Saytlarning ichki qidiruv tizimidagi muammolar
  • Situation: Internet-do'konlarida qidiruv qilinganida eng arzon mahsulotlar eng boshida chiqadi va bu mening loyihamda kamchiliklarga sabab bo'ldi. Masalan Samsung A54 smartfoni qidirilganda Samsung A54 uchun himoya oynasi takliflari chiqdi
  • Task: Muammoga sabab bo'lgan internet-do'kondagi mahsulotlarni API ga qo'shishdan oldin tekshiruv o'tkazish uchun funksiya yozish
  • Action: Muammo kelib chiqgan internet-do'kondagi mahsulotlarni API ga qo'shishdan oldin, shu so'rov bo'yicha boshqa do'konlardagi mahsulotlar narxlari orasidan eng arzon mahsulot narxi belgilab olinib va muammoga sabab bo'lgan internet-do'kondagi mahsulot narxi bilan solishtirish va agar narxlar orasidagi farq katta bo'lsa API ma'lumotlariga qo'shmasligini ta'minlovchi tekshiruvchi funksiya yozildi
  • Result: Buning natijasida foydalanuvchi mahsulot qidirganida so'rovga taaluqli bo'lgan mahsulotlar chiqishi ta'minlandi, API samaradorligi oshirildi

Loyihani telegram orqali ham https://t.me/arzoni_qayerda_bot ushbu bot orqali ishlatib ko'rishingiz mumkin. Xatoliklar haqida iltimos xabar bering.

RAHMAT

arzon.uz's People

Contributors

muhandis-kh avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.