وب اسکرپینگ با پایتون و دخیره سازی اطلاعات در دیتا بیس با استفاده از django rest
شرح پروژه:
در این برنامه دو مدل پیاده سازی شده یکی برای رنگ ها و یکی برای مشخصات کالا مدل product دارای 8 فیلد زیر است :
نام کالا - قیمت کالا - رنگ یا رنگ های کالا که با table color رابطه many to many دارد - موجود بودن یا نبودن کالا که با یک فیلد boolean مشخص میشود - امتیاز کالا - فروشنده
اصلی کالا - توضحیات و معرفی کالا - و دارای گارانتی بودن کالا که ان هم به صورت یک فیلد boolean مشخض می شود . منظور از پیاده سازی این مدل ها گرفتن اطلاعات اصلی هر کالا از
دیجی کالا است .
این پروژه با drf پیاده سازی شده است و داری یک model serializer است که به مدل product متصل می شود و به عنوان فیلد اضافی (wirtel-only) به عنوان url گرفته می شود
ما بقی فیلد ها فقط به صورت read only هستند سپس با استفاده از این url به هر صفحه ای از دیجی کالا دسترسی پیدا میکنیم و هر کالایی که در ان صفحه موجود باشد را شناسایی می کند
و اطلاعات ان را ذخیره سازی می کند . ابزار scraping که استفاده شده عبارتند از : selenium , beatifulsoup , request , htlm5lib .
علت اصتفاده از selenium این بود که صفحه دیجی کالا به صورت javascript طراحی شده و باید با selenium و با استفاده از webdriver ( در فایل پروژه webdriver chorom
ورژن 98.0.4758.102 قرار داده شده است ) ان را میخوانیم و با استفاده از کتابخانه beatifulsoup ان را گرفته و داخل ان با توجه به تگ های html جستجو کرده و اطلاعات مورد
نیاز را استخراج می کنیم .و در مدل مورد نظر ذخیره سازی می شود
ساختار این برنامه tdd است و دارای دو تست یکی برای urlو یکی برای api مورد نظر می باشد
راه حل های بهبود پروژه : قابلیت جست و جو در کامنت ها و بررسی انها با یک سری کلمات کلیدی برای بررسی دقیق کالا کلمه هایی مثل : مشکل - عالی - ایراد و .....