جستجو در بخش : سوال جواب منابع اسلامی لغت نامه ها قوانین و مصوبات نقل قل ها
×

فرم ورود

ورود با گوگل ورود با گوگل ورود با تلگرام ورود با تلگرام
رمز عبور را فراموش کرده ام عضو نیستم، می خواهم عضو شوم
×

×

آدرس بخش انتخاب شده


جهت کپی کردن میتوانید از دکمه های Ctrl + C استفاده کنید
رویداد ها - امتیازات
در حال بارگذاری
×

رویداد ها - امتیازات

برای بررسی عملکرد فعالیت و امتیازات خود باید در وب سایت وارد باشید. در صورت عضویت از بخش بالای صفحه وارد شوید، در غیر این صورت از دکمه پایین، مستقیم به صفحه ثبت نام وارد شوید.

×
×
کد تخفیف اسنپ تاکسی با 50% تخفیف! دریافت کد
×

دلیل درخواست بستن پست

کلیه پست هایی که جنبه تبلیغاتی داشته، محتوای اسپم و بی مفهوم در این دسته قرار میگیرند. همچنین پست هایی که به منظور گرفتن بک لینک درج می شوند شامل این مورد هستند.
حاوی مفاهیم غیر اخلاقی، سیاسی و یا توهین آمیز. کلیه پست هایی که از نظر محتوایی نیاز به بررسی و یا حذف شدن دارند در این دسته قرار می گیرند.
محتوایی با عدم جزئیات کافی و مورد نیاز. کلیه پست هایی که منظور نویسنده به وضوح مشخص نیست و نیازمند توضیحات و جزئیات بیشتر می باشند در این دسته قرار می گیرند.
محتوایی بی ربط با موضوعیت سرفصل کلی. کلیه پست هایی که از منظر مفهوم و مضمون ارتباطی با عنوان اصلی سوال ندارند در این دسته قرار می گیرند.
محتوایی دلخواه و بر پایه سلیقه. کلیه پست هایی که یک پاسخ مشخص ندارند و متوانند چندین پاسخ متفاوت و صحیح داشته باشند که کاملا مبتنی بر نظر شخصی افراد هستند در این دسته قرار می گیرند.
محتوایی در حوزه خیلی وسیع. کلیه پست هایی که از نظر محتوایی در یک حوزه ی وسیعی قرار دارند و مشخصا به یک موضوع خاصی اشاره ندارند که پاسخدهی به آن ها مستلزم تشریح مفاهیمی کلی می باشند در این دسته قرار می گیرند.
قبلا در لام تا کام مطرح شده. پست هایی که دقیقا با همین محتوا و مضمون قبلا در وب سایت لام تا کام درج شده اند، با ذکر آدرس منبع تکراری با پست حال حاضر شامل این دسته هستند. تکراری است با:
به سایر دلایل، نیازمند به بررسی توسط مدیر. به هر دلیل غیری که پست را نیازمند بررسی توسط مدیر کرده، با ذکر دلیل، در این دسته قرار میگیرد.
ارسال رای بستن

نحوه گرفتن اطلاعات یک سایت در سایت خودمان


0
0
4603

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

تکنولوژی کامپیوتر
سوال شده در حذف شده 25
282 امتیاز


در رابطه با وجود یک پلاگین خاص برای این کار در وردپرس بی اطلاع هستم؛ ولی این کاری که شما میخواید انجام بدید، اسمش هست واکشی اطلاعات. کار پیچیده ای نیست، کتابخانه های مختلفی برای زبان های مختلف وجود داره که این کار رو برای شما انجام میده. زبانی که باهاش کار می کنید رو دقیقا باید ذکر کنید که بتونیم بهتر راهنمایی بکنیم. ــ ساناز رضایی در 6 سال قبل

به لحاظ شدنش که بله قطعا میشه! کلید واژه ای که باید در موردش سرچ کنی Web Crawling هست. پلاگین های وردپرسیش اینجا هستن و هر کدومش رو که بخوای میتونی نصب و استفاده کنی. برات یک جواب می نویسم. ــ سجاد شفی زاده در 6 سال قبل

500 کاراکتر باقی مانده

1 جواب

2

خب! در ابتدا باید بگم که این چیزی که میگی:

نحوه گرفتن اطلاعات یک سایت در سایت خودمان

رو بهش میگن «کراول» (واکشی) کردن. اینکه این چیه، اینکه چطوری میشه پیاده سازیش کرد، اینکه چه محدودیت هایی داره و .. رو در ادامه توضیح میدم.


کراول یا واکشی کردن چیست؟

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

برای این کار بیشمار کتابخونه و پلاگین وجود داره. اگه بخوام متناسب با سوال خودت بگم، پلاگین rexcrawler یکی از پلاگین های محبوب وردپرسی هست دقیقا برای همین کار:

rexCrawler uses regular expressions to crawl specified websites. Websites are saved in user-defined groups, which can then be showed on wordpress pages/posts using shortcodes. The data crawled by rexCrawler is saved in the WP database in custom tables. Once data has been crawled, it can be inserted into a page using the shortcode [rexCrawler]

همانطور که از توضیحات پلاگین مشخص هست، کاربرد این پلاگین واکشی صفحات وب هست و ذخیره اونا در دیتابیس که نهایتان توی pages/posts توسط شرت‌کاتش نمایش داده میشن. تمام این فرایند (همانطور که از اسم این پلاگین مشخصه) مبتنی بر ریجگس regex هست. (ریجکس رو توی لام تا کام با برچسب عبارات باقاعده میشناسیم).

نکته: به عنوان یک نکته تکمیلی هم باید بگم که کتابخونه های دیگه ای هم برای زبان های دیگه وجود داره که به صورت خیلی دقیق تر و حرفه ای تر همین کار رو با عملکرد خیلی بهتری انجام میدن. مثلا کتابخونه PHP Simple HTML DOM Parser یکی از کتابخونه های زبان PHP است که این امکان رو به ما میده که صفحات وب رو واکشی و تجزیه کنیم.

پروسه کرال کردن رو میشه به چند دسته تقسیم کرد:

  1. باز کردن یک صفحه وب: که عموما در زبان برنامه نویسی PHP توسط تابع file_get_contents انجام میشه. یعنی تمام محتوای یک صفحه انگلیسی رو باز می کنه ([تمام دام رو]؛ دام به معنی یک صفحه وب به همراه تمام تگ های HTMLش).
  2. تجزیه کردن محتوای صفحه وب: همانطور که گفته شد، تمام دام الان باز شده و ما لازم داریم که اونو تجزیه کنیم؛ این کار رو به منظور جدا کردن دیتایی که لازم داریم از توی صفحه انجام میدیم. خیلی جاها از ریجکس regex برای این کار استفاده می کنن. اگه هم خیلی حرفه ای بخوایم جلو بریم، از کتابخونه های DOM Parser باید استفاده کرد. مثل همون PHP Simple HTML DOM Parser که بالاتر گفتم.
  3. نرمال سازی اطلاعات انتخاب شده: وقتی یک بخشی از دام رو انتخاب میکنیم، شاید یک سری دیتای اضافی هم این وسط انتخاب بشه، یا شایدم ما لازم داریم دیتای چندین بخش مختلف از صفحه رو بهم بچسبونیم تا معنی مد نظرمون ساخته بشه و خلاصه الان توی این مرحله وقتشه که تگ های اضافی رو حذف کنیم و نهایتا دیتامون رو تر و تمیز کنیم. یعنی دیتامون رو آماده کنیم برای ذخیره شدن در بانک اطلاعاتی (دیتابیس).
  4. ذخیره اطلاعات: خب تا به اینجای کار دیتای مورد نظر رو انتخاب کردیم، ترو تمیزش کردیم و الان وقت این رسیده که اونو توی دیتابیس ذخیره کنیم (یا هرجای دیگه، مثلا توی یه فایل؛ یا حتی میتونیم همونجا بفرستیمش واسه یه API). برای انجام این کار هم خب توضیحات زیادی لازم نیست و یک کوئری INSERT هست توی دیتابیس.

پس از طی کردن 4 مرحله مذکور، دیتای مورد نظر توی دیتابیس ما وجود داره و عملا میتونیم یک ویو view بسازیم و دیتا رو نمایش بدیم و این پروسه رو به عرصه عمل برسونیم. امیدوارم که توضیحاتم یک شفافیت نسبی از قضیه رو برات ایجاد کرده باشه.

این رو هم بگم که توی این مسیر موانع زیادی وجود داره معمولا، از جمله پروتکل های http و https برای باز کردن صفحه ای که قصد داریم کراول کنیم، یا گاها پیش میاد که اول باید (همون از طریق کد و توسط باتی که داری میسازی) توی یک صفحه ای لاگین کنی که تازه این اجازه رو داشته باشی صفحه مورد نظرت رو ببینی و که بخوای واکشیش کنی و ..! خلاصه فرایند ثابتی نیست، در وب سایت های مختلف و صفحات مختلف، تا حدی متفاوت باید عمل کرد. موفق باشی.

کلید واژگان:

  • واکشی کردن
  • کراول کردن / Crawling
  • تجزیه صفحات-وب / محتوا
  • پارس کردن / Parsing
  • ریجکس / RegEx / عبارات منظم (با قاعده)
  • دام / DOM
جواب داده شده در سجاد شفی زاده <m>★</m>
11.1k امتیاز


این افزونه برای گرفتن اطلاعات یک پترن میخواد ، که هر پترنی بهش میدی خطا میده ، اگر میتونید یه بررسی کنید خودتون ممنون ــ حذف شده 25 در 6 سال قبل

500 کاراکتر باقی مانده


جواب شما
     
.....
×

×

جعبه لام تا کام


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

تبلیغات توضیحی


عرشیان از کجا شروع کنم ؟
تغییر و تحول با استاد سید محمد عرشیانفر

تبلیغات تصویری


کپی