سلام دوستان خسته نباشید
ببخشید برای یه پروژه ساده نیاز به این سه مرحله هست که باید انجام بدم
1- نوشتن web crawler و خواندن کل دیتای یک url
2- نرمال کردن دیتا با استفاده از عبارات با قاعده
3- ذخیره دیتای نرمال شده در دیتابیس
کل روند به این صورته که مثلا محتوای html یک صفحه رو بگیرم
بعد تگ های p و a و هدینگ ها و.... رو بگیرم و ذخیره کنم تو دیتابیس
بعد که کاربر خواست یه کلمه رو سرچ کنه با توجه به این که کلمه توی هدینگ بوده یا تگ p و... رتبه بندی کنم و نتایج رو نشون بدم
یه حالتی شبیه یه موتور جستجوی ساده
ممنون میشم یه راهنمایی کلی بکنین و اگه نمونه کدی برای هر قسمت دارین بدین
تشکر
ببخشید
و یه سوال دیگه من فرضا آدرس example.com رو میدم
خب این اوکیه میشه دیتای html رو گرفت
ولی چطوری باید یه کاری کنم حالت خزنده داشته باشه یعنی باز بره توی لینک های داخلی سایت هم بگرده
ممنون میشم راهنمایی کنین
سلام من این موردو زیاد کار کردم اگه نمونه کدهام باشه برات میفرستم.
باید از کتابخونه curl استفاده کنی استفاده از اون راحته
بعد که با این کتابخونه یک صفحه html رو خوندی با یک کتابخونه به نام Simple Html Domمی تونی محتوای موردنظرتو بیرون بیاری و در پایگاه داده ذخیره کنی.
curl جزو کتابخونه های تو کار php است و در فایل php.ini بر سمیکالونشو بردار فعال میشه.
اما کتابخونه Simple Html Domجزو کتابخونه های توکار php نیست و به همین منظور شما به ناچار باید در لاراول براش پکیج نصب کنی.
نصبش هم آسونه یه سرچی بزن Simple Html Domبا کامپوزر نصبش کن یه کلاس بهت میده راحت ازش میشه استفاده کرد. من قبلا باهاش کار کردم .
اینم نمونه کد و طریقه نصبش:
https://github.com/yangqi/Htmldom
شما ابتدا با CURL محتوای یک صفحه رو بگیر بعد با HTML DOM محتوای مورد نظرو بیرون بیار.
CRUL آموزش فارسی خوبی داره.
اینم یه لینک نمونه کد
https://stackoverflow.com/questions/3592270/php-get-html-source-code-with-curl
آموزش فارسی :
https://netparadis.com/php-curl/
برای اینکه خودکار عمل کنه باید براش CRON در لاراول بنویسی در هاستت فعالش کنی مثلا هر 24 ساعت فعال شه بره بخونه در دیتابس ذخیره کنه. آموزش کرون جاب در لاراول هم هست.
با دستور php artisan make:command یک کلاس میسازی بعد داخل متد handler کدهاتو مینویسی. در سایت پارس کلیک کرون جاب برای لاراولو خوب توضیح داده شده.
خیلی ممنون
نه لاراول که استفاده نمیکنم
همون php خام
یه سوال دیگه
خب این curl مثلا ما آدرس roocket.ir رو میدیم و اوکیه
حالا برای اینکه بخوایم کاری کنم داخل لینک های داخلی سایت هم بره چیکار کنیم؟ مثلا داخل همه گفتگو ها هم بره و اطلاعات رو بگیره
تشکر
بله با دادن این roocket.ir آدرس کل محتوای صفحه index سایت راکتو میخونه. و در قالب یک فایل یا رشته متنی بهت میده.
بعد با کتابخونه Simple Html Dome موارد موردنظرو استخراج می کنی. حالا اگر در همین صفحه ایندکس سایت راکت بازهم بخوای لینک های دیگه ای رو بخونی با Simple Html Dom ابتدا تمام تگ های a رو در قالب یک آرایه پیدا میکنی بعد با یک حلقه href تک تک a هارو به curl میدی و محتواشونو میگیری و پردازش مربوطه رو انجام میدی.
@elyasbeshkani
@hosseinshirinegad98
خیلی ممنون
ولی من منظورم اینه آدرس roocket.ir رو بدم
و همه صفحات یا حداقل چند تاشونو اطلاعاتشو بگیره
مثلا roocket.ir/discuss/10299 اینو هم خودش بگیره، لازم نباشه من جدا جدا آدرس بدم
مثل خزنده که تو تمام صفحات میگرده
فکر کنم پاسخ شما رو در بالا داده باشم براش یه قطعه کد می نویسی اون تمام آدرس های اون صفحه رو می خونه
@elyasbeshkani
سلام
ترجیحا با php کار نکن. چون سرعتش به شدت پایینه در زمینه crawl
طبق تجربه پایتون رو پیشنهاد میکنم. پکیج scrapy
برای دانلود خودکار ویدئوهای رایگان سایت https://www.coursera.org بهترین روش در لاراول چی هست یا نود جی اس
@hosseinshirinegad98
سلام وقت بخیر ؛
توضیحاتتون و پکیج هایی که معرفی کردید تو این زمینه خیلی خوب بود؛ پکیجی که مربوط به گیت هاب بود رو خوندم و از مثالی که زده بود متوجه شدم که ظاهرا نیازی به استفاده از curl موجود در php.ini نیست چون تو مثالی که زده شده بود این پکیج هم ادرس رو میگیره و هم محتوا مورد نظر رو میشه با استفاده از همین استخراج کرد؛
ادرس لینک گیت هاب : https://github.com/yangqi/Htmldom
گفتم از شما بپرسم که آیا درست متوجه شدم ؟
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟