راکت

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

8 پاسخ

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

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

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

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

ثبت پرسش جدید

پاسخ‌ها

8
حسین اچ
حسین اچ
@s3dhossein

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

آقای هگز
آقای هگز
@mrhex

تخصص: برنامه نویس وب

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

شاید پاسخ شما همین‌جا باشد

viilll
viilll
@viilll

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

Muhammad
Muhammad
@muhammad

تخصص: Back-End Developer

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

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

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

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

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

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

مهدی
مهدی
@mehdi539

تخصص: توسعه دهنده

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

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

مهدی اردشیر
مهدی اردشیر
@mehdi0121

تخصص: یه برنامه نویس

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

مهدی
مهدی
@mehdi539

تخصص: توسعه دهنده

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

مهدی اردشیر
مهدی اردشیر
@mehdi0121

تخصص: یه برنامه نویس

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

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

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