اسکریپتی برای کاهش هزینهٔ شرکت در کلاسهای دانشگاه Coursera
زیادهگویی بس است. خیلی وقت پیش هم در کلاسهای این سایت شرکت کرده بودم، ولی ادامه ندادم. چرا؟ حقیقتش مجموعهٔ دانلودیاش عالی است. فیلم آموزشی، زیرنویسش، اسلاید و …. اما خودتان که میدانید زندگی سایبری (حالم از این کلمهٔ آخر به هم میخورد، جایگزین بهتری نمیشناسید؟) در ایران، خصوصا با این کیفیت عالی (!) چه هزینهٔ گزافی دارد. این شد که دیروز وقتی دوباره لیست این کلاسها، وسوسه به مطالعهشان را در من تقویت کرد، تصمیم به دانلودشان به صورت شبانه گرفتم. اما مشکل اینجاست که باید شب را تا صبح پای کامپیوتر بگذرانم و تک به تک دانلودشان کنم، چرا که، پروسهٔ دانلود سایت کمی قرتی تشریف دارد و کوکی میخواهد. قصد داشتم برای چالش هم که شده یک اسکریپت برای این کار بنویسم.
اما خوشبختانه بعد از اولین جستجو به کاملترین نسخهٔ ممکن برای این کار رسیدم. [اسکریپتی که](github.com/jplehmann/coursera "coursera doenloader on github") دیروز کار نمیکرد، و باعث شده بود تصمیم بگیرم تعمیرش کنم، ولی باز توسعه دهندهٔ خوشفکرش به کارش انداخت و الان مثل چـــی کار میکند ;-)
مزیتش نسبت به تمام روشهای دانلود دیگر این است که فقط کافیست نام کلاس را بهش بگویید و خودش همه چیزهای مربوطه را برایتان دانلود کرده، نام درست را برایشان بگذارد و در پوشههای جدا دسته بندی میکند. (هلو …؟)
اول با توجه به توزیع زیر دستتان، بستهٔ setuptools از خانوادهٔ پایتون را نصب کنید، و باقی کار را مثل زیر انجام دهید:
easy_install BeautifulSoup
easy_install argparse
git clone https://github.com/jplehmann/coursera.git
cd coursera
و حالا با چنین نحوی میتوانید دانلود را انجام دهید:
./coursera CLASS_NAME -u USER_NAME -p PASSWORD
برای به دست آوردن CLASS_NAME صفحهٔ کلاس مربوطه را در سایت باز کنید. مثلا برای Algorithms 1 همچین چیزی است:
https://class.coursera.org/algs4partI-2012-001/lecture/index
آن بند algs4partI-2012-001 میشود نام کلاس الگوریتمها. جایش در باقی کلاسها یکسان و معلوم است ;-)
پینوشت: در آیندهٔ نزدیک یک روش گازانبری و خیلی دم دستی را یادتان میدهم که میتواند این کوکیهای کذایی را دور بزند.