دانلود دیتاست‌ از سایت Kaggle و ذخیره آن در Google Drive بدون خون و خون‌ریزی!

عنوان پست رو گذاشتم دانلود مستقیم دیتاست‌های Kaggle در Google Drive اما تکنیکی که اینجا یاد می‌‌گیریم خیلی کلی‌تره و تقریبا همه‌جا میشه ازش استفاده کرد.

خیلی خلاصه بخوام بگم ما اینجا یاد می‌گیریم که چطور با دستور wget فایل‌هامون رو در محیط ترمینال دانلود کنیم.

اما تمرکز این پست رو روی گوگل‌درایو گذاشتم چون خودم برای یادگیری عمیق دارم با Colab کار می‌کنم و دنبال راهی بودم تا فایل‌هامو رو مستقیم روی گوگل‌درایو دانلود کنم.

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

دستور wget:

این دستور خیلی ساده‌س، بهش آدرس فایلی که قراره دانلود شه و محل ذخیره‌ی اون فایل رو می‌گیم و تمام، فایل رو برامون دانلود می‌کنه.

wget https://FILE_ADDRESS.COM -P PATH_ADRESS

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

mkdir gnu_icon
wget https://www.gnu.org/graphics/gnu-head-mini.png -P gnu_icon

ایده کلی:

یک jupyter Notebook در سایت Colab ایجاد کنیم، اون رو به Google Drive متصل کنیم، یک علامت تعجب بذاریم اول دستو بالا و تمام.

اما همون طور که می‌شد حدس زد کارها همیشه به این سادگی نیست!

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

پس اگر فایلمون به شکل public و بدون نیاز به Login کردن قابل دانلود بود همون دستور بالا کافیه، اگر نه یک مرحله‌ی بیشتر داریم.

افزونه‌های wget ساز!

داستان اینه که یک سری افزونه اون بیرون هست که روی فایرفاکس و یا گوگل‌کروم نصب می‌شن، بعد که یک فایل رو میای توی مروگر دانلود کنی دستور معادل wget رو با cookies‌ها و … خود ما رو می‌سازه تا از این دستور در ترمینال استفاده کنیم.

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

از این آدرس افزونه‌ی cliget رو روی فایرفاکس نصب کنید.

[اگر از گوگل‌کروم استفاده می‌کنید افزونه‌ی CurlWget رو باید نصب کنید.]

به عنوان مثال دیتاست Cat and Dog رو می‌خوایم دانلود کنیم.

در بخش Data روی Download All که کلیک کنیم اگر وارد اکانتمون نشده باشیم ازمون می‌خواد تا وارد شیم!

بعد که وارد شدیم مجددا روی دانلود کلید کنیم دانلود شروع میشه، دانلود رو کنسل کنید.

اگر به ایکون افزونه‌ی cliget دقت کنید یه عدد ۱ باید اونجا نوشته بهش، این یعنی یک فایل برای دانلود داریم!

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

اگر روی اسم فایل کلیک کنید و از پنجره‌ی باز شده دستور wget رو انتخاب کنید دقیقا اون چیزی که می خواستیم رو بهمون میده! شکل دستور wget برای دانلود اون فایل.

اتصال گوگل درایو به Colab و تکمیل کار:

خوب حالا لازمه که گوگل دایو رو به Colab وصل کنیم و یه Notebook جدید ایجاد کنیم.

من قبلا+ اینجا مفصلا و مرحله به مرحله توضیح دادم که چطور می‌شه گوگل درایور رو به Colab وصل کرد و مجددا اون‌ها رو تایپ نمی‌کنم (:

پس فرض می‌کنیم با موفقیت ارتباط بین Colab و Google Drive برقرار شده.

اگر ابتدای دستورات در Jupyter Notebook  یک دونه علامت تعجب ! قرار بدیم بجای کد پایتون دستور بش اجرا میشه.

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

!wget --header 'Host: storage.googleapis.com' --user-agent 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:64.0) Gecko/20100101 Firefox/64.0' --header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' --header 'Accept-Language: en-US,en;q=0.5' --referer 'https://www.kaggle.com/' --header 'Upgrade-Insecure-Requests: 1' 'https://storage.googleapis.com/kaggle-datasets/23777/30378/cat-and-dog.zip?GoogleAccessId=web-data@kaggle-161607.iam.gserviceaccount.com&Expires=1546026029&Signature=QDTQPt79nYaiA%2B4ymJNLOxZEipVufYtjEkVXu4UVutHPa7%2BjMXw3YS0OH9r18u9nnjMIn1GRHwy1M3vssYQcd1Tlobga2L%2BLaQVXcXsKnl%2Fbtz2oIISRZaBqx9sVrPMmZrRYDv6SlCnGdLmvO%2BzvOZvECG9DtKPZGA6OkPQ39NyYWQRkf2wX4hne3obhYO1oHcf91B%2ByOcaQnu3sACZBYdOVR0MgLyw5r3epmxyMaRnljjwW0YSRufOEHzT%2Fxwqd13ijkj2VJTbEWGDUjVgPtU%2BJ389Lv9gM%2B2m%2B8tMh9b8O1%2B41ehwOPriZmAIUzR922TFff%2BtSqxMRYOvZ4Rv3Kw%3D%3D' --output-document 'drive/My Drive/AI-ML/datasets/cat-and-dog.zip'

به کد بالا و چیزی که از افزونه کپی کردیم دقت کنید، یک علامت تجعب و محل ذخیره‌ی [‘drive/My Drive/AI-ML/datasets/+FILE_NAME’] بهش اضافه شده.

زمان دانلود رو ببیند تو رو به خدا! ): در ۵ ثانیه ۲۰۰ مگابایت دیتا رو دانلود کردیم.

پ.ن: برای خارج کردن دیتاست از حالت فشرده از دستور !unzip میشه استفاده کرد.


نویسنده: محمد حسین سالاری

موارد مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *