علی امینی
2 سال پیش توسط علی امینی مطرح شد
7 پاسخ

کرال کردن داده از وب سایت های متفاوت

سلام وقت بخیر.
من قصد دارم دیتا های وب سایت های مختلف رو در لاوال توسط cron job کرال کنم .
اگر فرض بر اینکه هر رکوئست ۲ ثانیه میانگین زمان ببره و هر کدوم هم ۲۰۰ کیلو بایت بخواد دیتا داشته باشه چه چیزی میزان رکوئست من در هر دقیقه که کرون ران میشه رو باید مشخص کنه یا واضخ تر بگم چند تا رکوئست این چنینی در هر دقیقه میتونم بدم
با توجه به queue شدن هر کدوم از این رکوئست ها

با تشکر


ثبت پرسش جدید
developer
تخصص : برنامه نویس
@developer 2 سال پیش مطرح شد
0

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


علی امینی
@mehdi2private 2 سال پیش مطرح شد
0

خیلی ممنون از پاسختون
میشه بگید برتریش چی هستش؟


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

اولا وقتی پاسخ میدید به کسی منشنش کنید که متوجه بشه
ثانیا کرون جاب اصلا واسه کراول کردن نیست و حرفه ای نیست، هر یک دقیقه میتونید اجرا اش کنید و کلی دردسر داره، کرون جاب واسه اجرای یک تسک به طور مداوم در سرور هست
اگه ربات میخواین باید با سلنیوم ایجاد کنید که خیلی ساده هست، و هر ثانیه میتونید ریکوئست بزنید و کلی قابلیت مختلف داره و همچنین میتونید با وب درایور کروم که توی سلنیوم هست اجزای صفحه رو انتخاب کنید، مقدار وارد کنید و ...


علی امینی
@mehdi2private 2 سال پیش آپدیت شد
0

@developer
خیلی ممنونم از راهنمایی و توضیحات درستتون 🙏
دیدم کتابخونه سلنیوم رو خیلی خوب بنظر میرسید مخصوصا با درایور کرومش.
ولی خب در مورد کرون جاب چون داریم از PHP و لاراول استفاده میکنیم باید از کرون جاب برای اتومیت کردن استفاده بشه ضمن اینکه در هر دقیقه میشه تعداد دلخواه رکوئست رو queue کرد تا خودش هر کدوم رو به ترتیب بزنه و از این لحاظ پرفورمنس خوبی داره.
من الان بیشتر سوالم در مورد میزان مصرف سرور هست که باید نگران چه ریسورسی باشم با وجود حجم دیتای دریافتی


امین محمدزاده
تخصص : برنامه نویسی وب - Laravel
@amin.webdesign 2 سال پیش مطرح شد
0

سلام
بخش اصلی سرویس شما همون بخش crawl هست که قراره انجام بدید. سرعت پایتون به مراتب بیشتر از php هست و زبان php اضلا برای این کار مناسب نیست و بهتره از پایتون برای این کار استفاده کنید که پایتون یه فریم ورک برای ایجاد سایت داره به نام flask که باید روی اون از ابزارهایی مثل سلنیوم یا scrapy استفاده کنید چون عملا شما سرویس پایتون رو باید روی یه سرور دیگه ای بالا بیارید و از طریق یه آدرسی بهش درخواستهاتون رو اجرا بکنید و داده ها رو براش پاس بدید و اونجا از ابزارهای crawl استفاده کنید و نتایج رو برگردونید.
من خودم قبلا از scrapy برای crawl دیجی کالا استفاده کرده بودم با روشی که بهتون گفتم


علی امینی
@mehdi2private 2 سال پیش آپدیت شد
0

@amin.webdesign
خیلی ممنونم از پاسخ بسیار خوبتون
چون من سایتم با لاراول است به راحتی نمیتونم انتقال بدم به پایتون و اینکه بخوام در یک سرور دیگه پایتون رو ران کنم باید دیتابیس رو شیر کنم
چون اگر بخوام دوباره تو کرون برای هر کدوم به جای رکوئست به سایت مقصد به API که با پایتون آماده شده رکوئست بزنم تا حد زیادی باز داره همین اتفاق میفته ضمن اینکه چون دوتا رکوئست میشه میتونه سرعت رو کمتر هم بکنه
پیشنهادی دارید برای این چالش؟


امین محمدزاده
تخصص : برنامه نویسی وب - Laravel
@amin.webdesign 2 سال پیش آپدیت شد
0

@mehdi2private
سلام. نیازی نیست پروژه رو به پایتون منتقل کنید. همون بخش کرال رو با پایتون مینویسید و درخواستهاتون رو به اون میفرستید. عملا هم باری که به سرورها وارد میشه به خاطر حجم درخواست ها و اطلاعات بازگشتی میتونه کم و زیاد باشه و به خودی خود بار اعمال نمیشه. در هر حالت باری که با php و مخصوصا لاراول به واسطه کرال به سرورتون وارد میکنید چند ده برابر ارسال درخواست به پایتونی که روی سرور دیگه هست.
چون ما به واسطه همین درخواست به پایتون کارهای مختلفی انجام دادیم بهتون این اطمینان رو میدم که پرفورمنس سیستم شما خیلی بالاتر از حالتی هست که با لاراول انجام میدید.
یه نمونه دیگه هم که تجربه اش رو دارم بهتون میگم که ما قبلا روی یه پروژه رزرواسیون بلیت کنسرت میومدیم خروجی PDF بلیتهارو با لاراول و پکیج های ایجاد PDF میگرفتیم که فوق العاده افتصاح بود و کلا سرور رو با مشکل روبرو میکرد. اومدیم قسمت تولید و خروجی PDF رو روی پایتون انجام دادیم تعداد 1000 تا PDF بلیط A4 رو در کسری از ثانیه تولید میکرد و دانلود میداد بدون اینکه مشکلی پیش بیاد و کاربر به مشکل بخوره
در واقع پایتون برای پردازش کارهای سنگین خیلی بهتر از php عمل میکنه.
شما توی بخش های زیادی مثل ارسال پیامک ها و درگاه های پرداخت عملا به واسطه ارسال درخواست به سرورهای دیگه عملیات انجام میدید و اگه قرار باشه از ارسال درخواست به سرور های دیگه بترسید نمیتونید سیستم بهتری توسعه بدید.


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

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