الیاس سخاوتی نیا
4 سال پیش توسط الیاس سخاوتی نیا مطرح شد
12 پاسخ

راهنمایی برای نوشتن crawler

سلام دوستان خسته نباشید
ببخشید برای یه پروژه ساده نیاز به این سه مرحله هست که باید انجام بدم
1- نوشتن web crawler و خواندن کل دیتای یک url
2- نرمال کردن دیتا با استفاده از عبارات با قاعده
3- ذخیره دیتای نرمال شده در دیتابیس

کل روند به این صورته که مثلا محتوای html یک صفحه رو بگیرم
بعد تگ های p و a و هدینگ ها و.... رو بگیرم و ذخیره کنم تو دیتابیس
بعد که کاربر خواست یه کلمه رو سرچ کنه با توجه به این که کلمه توی هدینگ بوده یا تگ p و... رتبه بندی کنم و نتایج رو نشون بدم
یه حالتی شبیه یه موتور جستجوی ساده

ممنون میشم یه راهنمایی کلی بکنین و اگه نمونه کدی برای هر قسمت دارین بدین
تشکر

@hesammousavi @ali.bayat @arian @mohsenbostan


ثبت پرسش جدید
الیاس سخاوتی نیا
تخصص : علاقه‌مند به برنامه‌‎نویسی
@elyassir 4 سال پیش مطرح شد
0

ببخشید
و یه سوال دیگه من فرضا آدرس example.com رو میدم
خب این اوکیه میشه دیتای html رو گرفت
ولی چطوری باید یه کاری کنم حالت خزنده داشته باشه یعنی باز بره توی لینک های داخلی سایت هم بگرده
ممنون میشم راهنمایی کنین


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش مطرح شد
4

سلام من این موردو زیاد کار کردم اگه نمونه کدهام باشه برات میفرستم.
باید از کتابخونه curl استفاده کنی استفاده از اون راحته
بعد که با این کتابخونه یک صفحه html رو خوندی با یک کتابخونه به نام Simple Html Domمی تونی محتوای موردنظرتو بیرون بیاری و در پایگاه داده ذخیره کنی.
curl جزو کتابخونه های تو کار php است و در فایل php.ini بر سمیکالونشو بردار فعال میشه.
اما کتابخونه Simple Html Domجزو کتابخونه های توکار php نیست و به همین منظور شما به ناچار باید در لاراول براش پکیج نصب کنی.
نصبش هم آسونه یه سرچی بزن Simple Html Domبا کامپوزر نصبش کن یه کلاس بهت میده راحت ازش میشه استفاده کرد. من قبلا باهاش کار کردم .
اینم نمونه کد و طریقه نصبش:
https://github.com/yangqi/Htmldom


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش آپدیت شد
1

شما ابتدا با CURL محتوای یک صفحه رو بگیر بعد با HTML DOM محتوای مورد نظرو بیرون بیار.
CRUL آموزش فارسی خوبی داره.
اینم یه لینک نمونه کد
https://stackoverflow.com/questions/3592270/php-get-html-source-code-with-curl

آموزش فارسی :
https://netparadis.com/php-curl/


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش مطرح شد
1

برای اینکه خودکار عمل کنه باید براش CRON در لاراول بنویسی در هاستت فعالش کنی مثلا هر 24 ساعت فعال شه بره بخونه در دیتابس ذخیره کنه. آموزش کرون جاب در لاراول هم هست.
با دستور php artisan make:command یک کلاس میسازی بعد داخل متد handler کدهاتو مینویسی. در سایت پارس کلیک کرون جاب برای لاراولو خوب توضیح داده شده.


الیاس سخاوتی نیا
تخصص : علاقه‌مند به برنامه‌‎نویسی
@elyassir 4 سال پیش مطرح شد
0

@hosseinshirinegad98

خیلی ممنون
نه لاراول که استفاده نمیکنم
همون php خام
یه سوال دیگه
خب این curl مثلا ما آدرس roocket.ir رو میدیم و اوکیه
حالا برای اینکه بخوایم کاری کنم داخل لینک های داخلی سایت هم بره چیکار کنیم؟ مثلا داخل همه گفتگو ها هم بره و اطلاعات رو بگیره
تشکر


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش مطرح شد
2

بله با دادن این roocket.ir آدرس کل محتوای صفحه index سایت راکتو میخونه. و در قالب یک فایل یا رشته متنی بهت میده.
بعد با کتابخونه Simple Html Dome موارد موردنظرو استخراج می کنی. حالا اگر در همین صفحه ایندکس سایت راکت بازهم بخوای لینک های دیگه ای رو بخونی با Simple Html Dom ابتدا تمام تگ های a رو در قالب یک آرایه پیدا میکنی بعد با یک حلقه href تک تک a هارو به curl میدی و محتواشونو میگیری و پردازش مربوطه رو انجام میدی.
@elyasbeshkani


الیاس سخاوتی نیا
تخصص : علاقه‌مند به برنامه‌‎نویسی
@elyassir 4 سال پیش مطرح شد
0

@hosseinshirinegad98
خیلی ممنون
ولی من منظورم اینه آدرس roocket.ir رو بدم
و همه صفحات یا حداقل چند تاشونو اطلاعاتشو بگیره
مثلا roocket.ir/discuss/10299 اینو هم خودش بگیره، لازم نباشه من جدا جدا آدرس بدم
مثل خزنده که تو تمام صفحات میگرده


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش مطرح شد
2

فکر کنم پاسخ شما رو در بالا داده باشم براش یه قطعه کد می نویسی اون تمام آدرس های اون صفحه رو می خونه
@elyasbeshkani


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

سلام
ترجیحا با php کار نکن. چون سرعتش به شدت پایینه در زمینه crawl
طبق تجربه پایتون رو پیشنهاد میکنم. پکیج scrapy


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

برای دانلود خودکار ویدئوهای رایگان سایت https://www.coursera.org بهترین روش در لاراول چی هست یا نود جی اس


الیاس سخاوتی نیا
تخصص : علاقه‌مند به برنامه‌‎نویسی
@elyassir 3 سال پیش مطرح شد
0

@mehdi539
متاسفانه اطلاعاتی ندارم ولی خب فکر کنم php توی این زمینه کند باشه


نیکی نجفی
@Nikinajafee 1 سال پیش مطرح شد
0

@hosseinshirinegad98
سلام وقت بخیر ؛
توضیحاتتون و پکیج هایی که معرفی کردید تو این زمینه خیلی خوب بود؛ پکیجی که مربوط به گیت هاب بود رو خوندم و از مثالی که زده بود متوجه شدم که ظاهرا نیازی به استفاده از curl موجود در php.ini نیست چون تو مثالی که زده شده بود این پکیج هم ادرس رو میگیره و هم محتوا مورد نظر رو میشه با استفاده از همین استخراج کرد؛
ادرس لینک گیت هاب : https://github.com/yangqi/Htmldom
گفتم از شما بپرسم که آیا درست متوجه شدم ؟


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

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