کل اطلاعات سایت دیجی کالا را کپی کن

کل اطلاعات سایت دیجی کالا را کپی کن
آکادمی آی تی
آکادمی آی تی
dots

کل اطلاعات سایت دیجی کالا را کپی کن

زمان مورد نیاز برای مطالعه 5 دقیقه

   یکی از بهترین راه ها برای به دست آوردن داده های واقعی از سایت های دیگر وب اسکرپینگ است

دپارتمان ‌ها: آموزش طراحی سایت
1400/12/25
4,085 بازدید

 

یکی از بهترین راه ها برای به دست آوردن داده های واقعی از سایت های دیگر وب اسکرپینگ است. ما در این مقاله به شما وب اسکرپینگ را آموزش می دهیم تا به راحتی کل اطلاعات سایت دیجی کالا یا هر سایتی را که دوست دارید کپی کنید؛ و در پروژه مد نظر خود استفاده کنید.

تصور کنید شما به قیمت های محصولات دیجی کالا نیاز دارید ولی نمی خواهید برای آپدیت قیمت به صورت لحظه ای یا روزانه به سایت دیجی کالا سر زده و به صورت دستی قیمت ها را بروز کنید. اینجاست که وب اسکرپینگ چاره کار است و کار را بسیار راحت خواهد کرد.
 

مراحل قدم به قدم اسکرپینگ

من قدم به قدم به شما نشان خواهم داد که چگونه می توانید:

  1. یک صفحه وب عمومی html را اسکرپ کنید.
  2. داده ها را از آن استخراج کنید.
  3. یک اسکریپت بنویسید که به طور خودکار هزاران صفحه وب عمومی html را در یک وب سایت اسکرپ کند.
  4. از داده هایی که به دست می آورید، تجزیه و تحلیل های مفید (و سرگرم کننده) ایجاد کنید.
  5. تجزیه و تحلیل حجم عظیمی از متن را به راحتی انجام دهید.
  6. تجزیه و تحلیل متادیتای وب سایت را انجام دهید.

 

یک صفحه وب عمومی html را اسکرپ کنید.

این قسمت اولین قدم پروژه است، جایی که ما روی اسکرپ کردن یک صفحه وب عمومی html تمرکز خواهیم کرد. و در قسمت‌های آتی، ما با مراحل بعدی ادامه خواهیم داد. مقیاس سازی اسکرپینگ تا هزاران صفحه وب، استخراج داده‌ها از آن ها و تجزیه و تحلیل داده هایی است که به دست می آوریم.

من کل فرآیند را به دو زبان داده مختلف نیز به شما نشان خواهم داد، بنابراین دامنه کامل را خواهید دید. در این مقاله، من با ساده تر شروع می کنم: bash.

قبل از اینکه شروع کنیم…

این یک آموزش عملی است. من به شدت توصیه می کنم قسمت کد نویسی را با من انجام دهید (و حتما حتما تمرین کنید).

من فرض می‌کنم که شما قبلاً دانش کدنویسی bash دارید و سرور داده خود را قبلاً راه‌اندازی کرده اید. اگر نه، لطفا ابتدا این مهارت ها را کسب کنید.

پروژه: اسکرپ سایت digikala.com و تجزیه و تحلیل آن

وقتی یک پروژه سرگرمی علم داده را اجرا می کنید، همیشه باید موضوعی را انتخاب کنید که به آن علاقه دارید.

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

 

آموزش اسکرپینک سایت دیجی کالا

خب همه چیز خوب پیش می رود حتی بیشتر رونوشت های آن ها نیز موجود است.

نکته: من digikala.com را فقط به عنوان مثال انتخاب کردم. اگر به چیز دیگری علاقه دارید، پس از اتمام این مقالات آموزشی، سعی کنید یک پروژه اسکرپینگ وب را پیدا کنید که در راستای علاقه شما باشد. آیا به امور مالی مشغول هستید؟ سعی کنید اخبار بازار سهام را اسکرپ! آیا به املاک و مستغلات علاقه دارید؟ وب سایت های املاک و مستغلات را اسکرپ کنید. اهل سینما هستی؟ هدف شما می تواند سایت های فیلم و سریال باشد.

 

وارد سرور خود شوید.

خوب، پس یک بار دیگر تاکید می کنم برای این آموزش، به یک سرور نیاز دارید. اگر هنوز را راه اندازی نکرده اید، همین الان دست به کار شوید.

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

خوب، بیایید بگوییم که شما سرور خود را دارید. اکنون Terminal (یا Putty) را باز کرده و با نام کاربری و آدرس IP خود وارد شوید.

اگر همه چیز درست است، باید خط فرمان زیر را ببینید. چیزی شبیه به این:

academyit-learn-data-science:~$

 

معرفی ابزار خط فرمان مورد علاقه جدید شما: curl

یکی از ابزارهای محبوب موجود به عنوان یک برنامه رابط خط فرمان (CLI) برنامه cURL است.

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

 

CURL چیست؟

Curl یک ابزار خط فرمان است که برای انتقال داده ها از سرورهای وب ایجاد شده است. به زبان ساده، برنامه curl یک برنامه CLI است که ارتباط شبکه با سرورهای وب را تسهیل می کند. با استفاده از این ابزار می توانید داده ها را از وب سرورها درخواست کنید و با همان ابزار می توانید داده های وب سرور را از در پروژه خود ارائه دهید.

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

curl مخفف URL مشتری است. به عنوان ابزاری که به شما کمک می کند با یک سرور در یک مکان راه دور صحبت کنید، باید مکان را مشخص کنید، که معمولاً به شکل URL خواهد بود، و این همان جایی است که URL مشتری از آنجا می آید. این یک برنامه مشتری برای برقراری ارتباط با سرورها است. از نظر پشتیبانی از پروتکل، برنامه curl از پروتکل های محبوب از جمله HTTP، HTTPS، FTP، FILT، DICT، POP3، IMAPS و SMB پشتیبانی می کند. Curl توسط liburl که یک کتابخانه انتقال URL رایگان و سمت مشتری است، تامین می شود.

 

چرا از curl استفاده می کنیم؟

این ابزار دارای تعداد زیادی مزایا است که شامل موارد زیر می شود.

 

کراس پلتفرم

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

 

استفاده آسان

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

 

محبوب است

این به این دلیل است که بسیاری از وب سرویس‌ها از curl پشتیبانی می‌کنند، و به همین دلیل، دانستن نحوه استفاده از آن، شما را در استفاده از برخی از این سرویس‌ها و ابزارهایی که از آن پشتیبانی می‌کنند، بهتر می‌کند.

 

جزئیات زیادی را در اختیار شما قرار می دهد

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

 

چه کاری می توانید با curl انجام دهید؟

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

شاید برایتان جالب باشد که بدانید احتمالاً بدون اینکه متوجه شوید از curl استفاده می‌کنید، زیرا هزاران دستگاه از جمله دستگاه‌های اینترنت از آن استفاده می‌کنند. اجازه دهید به 3 کار محبوبی که می توانید با curl انجام دهید نگاهی بیندازیم.

 

تست API ها

آزمایش نقاط پایانی API مسلماً دلیل شماره یک در دسترس بودن curl است. با استفاده از این ابزار می توانید درخواست های API را ارسال کرده و پاسخ دریافت کنید. این آن را به ابزاری قدرتمند برای آزمایش نقاط پایانی در صورتی که توسعه دهنده هستید تبدیل می کند. از احراز هویت پشتیبانی می کند، به شما امکان می دهد درخواست های GET و POST و همچنین PUT و DELETE را ارسال کنید.

 

اسکرپینگ وب

اسکرپینگ وب اساساً عمل جمع آوری داده ها به روشی خودکار از وب سایت ها است. از آنجایی که curl می تواند داده ها را از سرورهای وب ارسال و دریافت کند، می توانید از آن برای جمع آوری داده ها از وب سایت ها استفاده کنید. شاید برایتان جالب باشد که بدانید برخی از وب‌سایت‌ها وجود دارند که داده‌ها را برای اسکرپ کردن ارائه می‌دهند.

برای مثال در نظر بگیرید؛ می توانید از curl برای بررسی خرابی وب سایت، بررسی تغییرات قیمت و حتی دانلود فایل‌ها استفاده کنید.

 

مدیریت برنامه های سازگار با Curl

برخی از ابزارها و خدماتی وجود دارند که از curl پشتیبانی می کنند. من تعداد زیادی API اسکرپ وب و سرویس های پروکسی را می شناسم که از curl پشتیبانی می کنند. یکی از چیزهایی که در مورد این ابزار نیز مورد پسند شما قرار خواهد گرفت این است که برخی از رسانه های اجتماعی وجود دارند که از آن پشتیبانی می کنند.

به عنوان مثال، توییتر و فیس بوک کلاینت هایی را ارائه می دهند که می توانید از آن ها برای تعامل با حساب خود و ارسال محتوا استفاده کنید. چیزی که باید بدانید این است که curl این کار را به تنهایی انجام نمی دهد و باید با ابزارهای ارائه شده توسط این وب سرویس ها کار کند.

 

نحوه نصب اپلیکیشن curl

این بخش از مقاله فقط برای تعداد کمی از خوانندگانی که curl را روی رایانه خود نصب نکرده اند ایجاد شده است. این به این دلیل است که این ابزار بر روی تعداد زیادی از سیستم عامل ها نصب شده است.

اگر از macOS استفاده می‌کنید، آن را به‌طور پیش‌فرض روی رایانه خود نصب کرده‌اید. برای کاربران ویندوز، این ابزار در ویندوز 10، نسخه 1803 یا جدیدتر، از قبل نصب شده است.

برای اینکه ببینید curl را نصب کرده‌اید، برنامه کنسول (خط فرمان) را باز کنید و "curl" را تایپ کنید، سپس دکمه Enter را فشار دهید. در صورت نصب، کنسول موارد زیر را چاپ می کند:

curl: try ‘curl –help’ or ‘curl –manual’ for more information.

در غیر این صورت، چیزی شبیه به این را خواهید دید:

curl command not found

اگر curl نصب نشده است، مراحل زیر را دنبال کنید تا آن را روی رایانه خود نصب کنید.

یک پوشه جدید در درایو C خود ایجاد کنید و به صفحه دانلود برنامه curl بروید. گزینه ای برای نوع سیستم شما وجود دارد. ویندوز 64 یا ویندوز 32 بیت.

فایل فشرده دانلود شده را از حالت فشرده خارج کرده و فایل curl.exe را در C:\curl قرار دهید

به https://curl.haxx.se/docs/caextract.html بروید و فایل گواهی دیجیتال با نام cacert.pem را دانلود کنید. این فایل را به C:\curl منتقل کنید و اسم آن را به curl-ca-bundle.crt تغییر دهید.

مسیر پوشه curl را به متغیر محیطی PATH ویندوز خود اضافه کنید تا دستور curl به صورت جهانی در خط فرمان در دسترس باشد.

اگر موارد فوق را به درستی انجام داده باشید، curl را با موفقیت بر روی رایانه شخصی ویندوزی خود نصب کرده اید. برای آزمایش این مورد، خط فرمان را باز کنید و curl را تایپ کنید، سپس دکمه enter را فشار دهید و باید این را ببینید:

curl: try ‘curl –help’ or ‘curl –manual’ for more information

 

نحوه استفاده از Curl برای Web Scraping

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

 

curl [option] [url]

curl برای این است که به خط فرمان بگوید که می خواهید از برنامه curl استفاده کنید، نشانی اینترنتی برای تعیین مکان (URL) محتوای راه دوری است که می خواهید با آن تعامل داشته باشید، و بخش option توضیحی است برای مشخص کردن برخی از موارد گزینه های موجود برای برنامه curl.

به عنوان مثال، اجازه دهید ساده ترین دستور curl را که می توانید استفاده کنیم برای سایت دیجی کالا انجام دهیم.

curl www.digikala.com

دستور بالا، وقتی کلید enter را فشار می‌دهید، محتوای صفحه را در صفحه www.digikala.com چاپ می‌کند؛ می توانید از هر URL دیگری استفاده کنید و HTML را دریافت خواهید کرد. نه فقط آنچه برای شما قابل مشاهده است، بلکه محتوای کامل (HTML).


نتیجه به صورت زیر می باشد:

<!DOCTYPE html><html lang="fa" dir="rtl"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/><link rel="apple-touch-icon" href="/logo192.png"/><script>
        window.lazySizesConfig = window.lazySizesConfig || {};
        window.lazySizesConfig = Object.defineProperty({},"loadMode",{
            get: function() { return 1; },
            set: function(value) { /* Ignore any set value */ }
        });
    </script><title>فروشگاه اینترنتی دیجیکالا</title><meta name="description" content="هر آنچه که نیاز دارید با بهترین قیمت از دیجیکالا بخرید! جدیدترین انواع گوشی موبایل، لپ تاپ، لباس، لوازم آرایشی و بهداشتی، کتاب، لوازم خانگی، خودرو و... با امکان تعویض و مرجوعی آسان | ✓ارسال رايگان ✓پرداخت در محل ✓ضمانت بازگشت کالا - برای خرید کلیک کنید!"/><meta name="msvalidate.01" content="15B2F9DC1A9D64AEB0134F21A3D8A683"/><meta name="fontiran.com:license" content="THJBT"/><link rel="canonical" href="https://www.digikala.com/"/><link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png"/><meta name="msapplication-TileColor" content="#ffffff"/><meta name="msapplication-TileImage" content="/ms-icon-144x144.png"/><meta name="theme-color" content="#fb3449"/><meta name="msapplication-navbutton-color" content="#fb3449"/><meta name="apple-mobile-web-app-status-bar-style" content="#fb3449"/><meta name="next-head-count" content="15"/><link rel="preload" href="/_next/static/css/a4d5bac837ea36b4.css" as="style"/><link rel="stylesheet" href="/_next/static/css/a4d5bac837ea36b4.css" data-n-g=""/><link rel="preload" href="/_next/static/css/babc1e03594e3791.css" as="style"/><link rel="stylesheet" href="/_next/static/css/babc1e03594e3791.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/_next/static/chunks/webpack-ea1c5ae9b0bb9245.js" defer=""></script><script src="/_next/static/chunks/framework-f819b332f07f6162.js" defer=""></script><script src="/_next/static/chunks/main-6634c3753909cae9.js" defer=""></script><script src="/_next/static/chunks/pages/_app-6b960459964df422.js" defer=""></script><script src="/_next/static/chunks/8412-c921c120f18df5c7.js" defer=""></script><script src="/_next/static/chunks/8035-e6a738f248911204.js" defer=""></script><script src="/_next/static/chunks/3036-324010795eea78b9.js" defer=""></script><script src="/_next/static/chunks/7548-e5ec02a1e41f0047.js" defer=""></script><script src="/_next/static/chunks/7416-a431a74d2c7c4024.js" defer=""></script><script src="/_next/static/chunks/3001-d076d55e125f3db8.js" defer=""></script><script src="/_next/static/chunks/pages/index-d099628404638f56.js" defer=""></script><script src="/_next/static/6DEE4TkqIHtCjw9Ys48V5/_buildManifest.js" defer=""></script><script src="/_next/static/6DEE4TkqIHtCjw9Ys48V5/_ssgManifest.js" defer=""></script><script src="/_next/static/6DEE4TkqIHtCjw9Ys48V5/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><div class="pos-fixed ServicesLoaderWrapper_ServicesLoaderWrapper__loading__t2fXK"><div class="d-flex ai-center jc-center w-100 h-100"><div class="rounded-circle Loading_module_Loading__circle__97c241d5 Loading_module_Loading__circle_LowEmphasis__97c241d5"></div><div class="rounded-circle Loading_module_Loading__circle__97c241d5 Loading_module_Loading__circle_LowEmphasis__97c241d5"></div><div class="rounded-circle Loading_module_Loading__circle__97c241d5 Loading_module_Loading__circle_LowEmphasis__97c241d5"></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"6DEE4TkqIHtCjw9Ys48V5","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>

واقعا کد ترسناکی شد ولی نگران نباشید.
این کد html کامل digikala است و به زودی توضیح خواهم داد که چگونه می توان آن را به چیزی معنادارتر تبدیل کرد. اما قبل از آن، یک چیز مهم است.
همانطور که می بینید، برای به دست آوردن داده های مورد نظر، باید از همان URL دقیقی که محتوای وب سایت در آن قرار دارد و از نسخه کامل آن استفاده کنید. بنابراین، برای مثال این فرم کوتاه کار نخواهد کرد:

Curl digikala.com

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

curl –o filename.html http://www.example.com/file.html


در این مرحله، این هنوز به طور کامل اسکرپینگ وب نیست زیرا شما هیچ داده مورد نیاز را تجزیه نمی کنید. برای به دست آوردن یک تجربه کامل از اسکرپ کردن وب، باید از آن همراه با ابزارهای دیگر استفاده کنید. در زیر یک نمونه PHP plus curl برای اسکرپ کردن وب آورده شده است.

<?php
/**
 * @param string $url - the url you wish to fetch.
 * @return string - the raw html response.
 */
functionweb_scrape($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($ch); curl_close($ch);
return$response;
}
/**
 *
 * @param string $url - the url you wish to fetch.
 * @return array - the http headers returned
 */
functionfetch_headers($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 1);
$response = curl_exec($ch);
curl_close($ch);
return$response;
}
//var_dump(get_headers("https://www.google.se/"));
// echo web_scrape('https://www.google.se/');

 

کد بالا از GitHub گرفته شده است و به شما نشان می دهد که چگونه با استفاده از دو PHP و curl یک وب اسکرپر ساده ایجاد کنید. حتی زمانی که پروتکل https را به درستی تعریف می کنید، اما قسمت www را نگذارید با یک پیغام خطای دریافت می کنید.

بنابراین مطمئن شوید که URL کامل را تایپ کرده اید و از آدرسی استفاده می کنید که واقعاً وب سایت در آن قرار دارد. این البته از وب سایتی به وب سایت دیگر متفاوت است. برخی از پیشوند www استفاده می کنند، برخی نه. برخی هنوز تحت پروتکل http کار می کنند. اکثر سایت ها بیشتر از https استفاده می کنند.

یک ترفند خوب برای یافتن URL مورد نیاز این است که وب سایت را در مرورگر خود باز کنید و سپس به سادگی URL کامل را از آنجا در پنجره خود کپی کنید.

بدیهی است که اولین گام در پروژه اسکراپینگ وب همیشه یافتن URL مناسب برای صفحه وب است که می خواهید دانلود، استخراج و تجزیه و تحلیل کنید.

ابزار خط فرمان مورد علاقه دیگر شما: html2text

خوب، این دستور ضروری نیست اما کار شما را بسیار آسان تر می کند. پس بیایید ببینیم چطور است.

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

متأسفانه، html2text بخشی از تنظیمات سرور فعلی شما نیست (این یک ابزار داخلی نیست)، بنابراین قبل از اینکه برای اولین بار از آن استفاده کنید، باید آن را نصب کنید. (هر چند چیز مهمی نیست. حدود 10 ثانیه طول می کشد.)

این را در خط فرمان خود تایپ کنید:

sudo apt-get install html2text

رمز عبور شما را می خواهد (آن را تایپ کنید) و سپس به سرعت ابزار html2text را روی سرور شما نصب می شود.

 

پاک کردن داده های فایل html

دستور curl قبلی خود را دوباره اجرا کنید اما این بار اجازه دهید دستور html2text را با یک  "|" بعد از آن نیز قرار دهیم.
این را تایپ کنید:

curl https://www.digikala.com/ | html2text

نتیجه را به صفحه نمایش خود باز می‌گردانید.

کمی به بالا ورق بزنید این چنین چیزی را خواهید دید:

گوشی
گوشی موبایل اپل مدل iPhone 13 Pro Max A2644 دو سیم کارت ظرفیت 256 گیگابایت و رم 6 گیگابایت
گوشی موبایل اپل مدل iPhone 13 Pro Max A2644 دو سیم کارت ظرفیت 256 گیگابایت و رم 6 گیگابایت
۲٪
۳۹,۹۸۹,۰۰۰
۴۱,۰۰۰,۰۰۰
۹۹%فروش رفته
۲۷ : ۳۵ : ۰۲
گوشی موبایل شیائومی مدل Redmi 9A M2006C3LG دو سیم کارت ظرفیت 32 گیگابایت
گوشی موبایل شیائومی مدل Redmi 9A M2006C3LG دو سیم کارت ظرفیت 32 گیگابایت
۴٪
۲,۳۹۵,۰۰۰
۲,۴۹۹,۰۰۰
۲۷ : ۳۵ : ۲۶
هدفون بی سیم سامسونگ مدل Level U2
هدفون بی سیم سامسونگ مدل Level U2
۸٪
۶۷۹,۰۰۰
۷۳۹,۰۰۰
۳۳%فروش رفته
۲۷ : ۳۵ : ۲۶
گوشی موبایل شیائومی مدل POCO F3 5G M2012K11AG دو سیم کارت ظرفیت 256 گیگابایت و 8 گیگابایت رم
گوشی موبایل شیائومی مدل POCO F3 5G M2012K11AG دو سیم کارت ظرفیت 256 گیگابایت و 8 گیگابایت رم
۲٪
۸,۳۹۹,۰۰۰
۸,۵۹۹,۰۰۰
۶۵%فروش رفته
۲۷ : ۳۵ : ۲۶

 

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

حذف قسمت های غیر ضروری داده ها (با استفاده از دستور sed)

ما سعی خواهیم کرد الگویی را پیدا کنیم که برای هر صفحه وب رونوشت در digikala.com مشابه باشد و به وضوح در محدوده شروع و پایان بخش مفید محتوای ما باشد.

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

sed -n '/[the pattern itself]/,$p'

و برای حذف تمام خطوط بعد از یک خط داده شده در یک فایل، این کد است:

sed -n '/[the pattern itself]/q;p'

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

 

نتیجه

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

یکی از چیزهایی که باید بدانید این است که این ابزار ممکن است در ابتدا آسان به نظر نرسد، اما وقتی برای مدتی از آن استفاده کنید، نه تنها متوجه خواهید شد که چقدر آسان است بلکه متوجه خواهید شد که چقدر قدرتمند است.

همچنین در این آموزش یاد گرفتیم چطور از سایت هایی مثل دیجی کالا می شود کل اطلاعات آن را کپی کنیم.


مدرس : فرید حقگویان