مهدی
4 سال پیش توسط مهدی مطرح شد
8 پاسخ

ارسال درخواست به دیجی کالا با حجم بالا

سلام و خسته نباشید
ما یه سایت فروشگاهی زدیم که کارش اینه که لیست محصولات متنوعی رو که درج کردیم علاوه بر قیمت خودمون از سایت دیجی کالا هم استعلام قیمتی انجام میدیم و در کنار قیمت خودمون نشون میدیم
این استعلام قیمت ها به خاطر حجم زیاد از سمت اسکریپت و سرور دیجی کالا بلاک میشن
نحوه خوندن اطلاعات هم به این شکله که ما با توابعی مثل file_get_contents در php صفحات دیجی کالارو باز میکنیم و مقدار داخل تگ قیمت رو بر میداریم و توی سایت مون نشون میدیم

بنظرتون چه کاری میشه کرد تا دیجی کالا آی پی مونو مسدود نکنه؟

چون مثلا قیمت 1000 تا محصول از سایت دیجی کالا در هر ۵ دقیقه میخوایم بخونیم به یکباره وقتی ریکوئست رو میفرستیم آی پی رو بلاک میکنن

ممنون میشم راهکار بدید


ثبت پرسش جدید
حسین اچ
@s3dhossein 4 سال پیش مطرح شد
0

فک کنم تنها راه استفاده از پروکسی باشه !
ک از ایپی های مختلف درخواست بدی ک بلاک نشی


آقای هگز
تخصص : برنامه نویس وب
@mrhex 4 سال پیش مطرح شد
1

باید از پروکسی استفاده کنید
البته *** هایی مثل HMA هم این امکان رو در اختیارتون قرار میدن ک هر X ثانیه ای پیتون تغییر کنه اما شما هم یه delay منصفانه و معقول توی اسکریپتتون بنویسید دیگه :))


viilll
@viilll 4 سال پیش مطرح شد
0

به جای هر 5 دقیقه 1000 درخواست هر 1 ثانیه 3 درخواست بدید و هر ثانیه ip رو تغییر بدید


Muhammad
تخصص : Back-End Developer
@muhammad 4 سال پیش آپدیت شد
1

سلام، وقتتون بخیر.

1)‌ به جای فرستادن درخواست به صفحه محصول، از APIهای دیجی‌کالا استفاده کنید:

GET https://www.digikala.com/ajax/product/price-chart/{product_id}/

هم نیازی به سر و کله زدن با DOM ندارید و هم حجم ریسپانستون بیشتر از ٪۹۰ کمتر شده!

2)‌ از صف (Queue) استفاده کنید و در هر دقیقه، تعداد محدودی رو از API بگیرید و توی دیتابیستون ذخیره کنید. اگه هر دقیقه 5 درخواست بفرستید، آپدیت 1000 محصول حدود سه‌ساعت زمان می‌بره که خیلی هم خوبه.

3)‌ استفاده از پراکسی و هدرهای مناسب هم شانس بیشتری بهتون می‌ده. هر Job که Fail شد، بعدا پردازش میشه.


مهدی
تخصص : توسعه دهنده
@mehdi539 4 سال پیش آپدیت شد
-1

دوستان الان ما تصمیم مون این شده علاوه بر دیجی کالا به چندین سایت دیگه هم کانکشن بزنیم و دیتا بخونیم و همشون مثل دیجی کالا api ندارن
پس بحث api برامون منتفی هست
فقط دوست عزیزمون @mrhex گفتن که روش HMA میتونه یه سولوشن باشه ، ممنون میشم یه توضیحی در این خصوص بدید و این دقیقا یعنی چی و چطور باید تهیه بشه ؟ آیا نوعی سرور هست یا افزونه ای چیزی هست که باید روی سرور نصب بشه ؟ دقیقا باید چیکار کرد ... چون چیزی رو توی رفرنس ها پیدا نکردم واقعیتش

تصویر صفحه از برنامه ما که لیست قیمت هارو از سایت های مختلف نشون میده


مهدی اردشیر
تخصص : یه برنامه نویس
@mehdi0121 4 سال پیش مطرح شد
1

سلام hma یک نوع *** هست
که توی گوگل سرچ کنید میتونید سایت اصلی رو مشاهده کنید
و یک چیز دیگه اینکه به دلیل اینکه hma خارجی هست و برای خرید حتما باید از دلار استفاده کنید
به صرفه نیست
با سایت های ایرانی که پروکسی ارائه میدن صحبت کنید شاید به صرفه و بهتر بود
موفق باشید


مهدی
تخصص : توسعه دهنده
@mehdi539 4 سال پیش مطرح شد
0

سلام
@mehdi0121.ir عزیز
میشه لینک سایت ارائه دهنده این سرویس رو برام بفرستید
ممنون میشم


مهدی اردشیر
تخصص : یه برنامه نویس
@mehdi0121 4 سال پیش مطرح شد
0

سلام با توجه به قوانین راکت
لطفا در تلگرام پیام بدید
تا برای شما ارسال کنم
mehdi0121
@mehdi539


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام