من یاغی دربندم

مطالب سعید علیجانی/اهل گنو/اهل شعر/طرفدار دانش آزاد

من یاغی دربندم

مطالب سعید علیجانی/اهل گنو/اهل شعر/طرفدار دانش آزاد

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

برای این کار ابتدا از افزونهٔ Web Developer فایرفاکس استفاده کردم و از طریق منوی Information این افزونه، گزینهٔ View Link Information رو انتخاب کردم و یک صفحه برام باز شد که تمام لینک‌هارو آورده بود. تمام متن اون صفحه رو کپی کردم و تو یه فایل به اسم links ریختم.

مسالهٔ بعدی حذف لینک‌های اضافی بود. من تو این صفحه تمام لینک‌های رو می‌خواستم که پسوند .zip داشتن. خب تو ترمینال گنو/لینوکس این کار به راحتی با دستور cat و grep امکان‌پذیره.

cat links | grep .zip > downloads

دستور cat محتویات فایل رو در خروجی قرار میده و grep تمام خط‌هایی که .zip تو اون‌ها هست انتخاب می‌کنه و همهٔ این‌ها تو یه فایل جدید ریخته میشه. خب الان من تمام لینک‌هایی رو که می‌خواستم داخل یک فایل دارم. مرحلهٔ بعدی اینه که یه با استفاده از یه برنامهٔ دانلود این لینک‌ها رو دانلود کنم. من از برنامهٔ axel استفاده می‌کنم. برای همین باید تمام این لینک‌ها رو با axel دریافت کنم. برای همین axel رو به اول هر خط اضافه کردم. اما دستی اضافه نکردم و از دستور فوق‌العاده جذاب sed استفاده کردم.

cat downloads  | sed 's/[ ]/axel /' > download.sh

دستور بالا میگه که محتوای فایل بریز تو یه فایل جدید به اسم downlooad.sh و این که جای اسپیس اول هر خط عبارت axel رو قرار بده. چون من از طریق افزونهٔ Web Developer لینک‌ها رو کپی کردم، اول هر کدوم یه اسپیس قرار گرفته. در کل برنامهٔ sed خیلی خوب و کار راه بینداز هست، در موردش بیشتر بخونید، تا تجربهٔ خوشایندتری رو در گنو/لینوکس داشته باشید. حالا تنها کافیه این فایل رو اجرا کنم و صبر کنم که تمام فایل‌هایی که می‌خواستم دانلود شن.

sh download.sh

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

نظرات  (۲)

۲۹ دی ۹۴ ، ۱۶:۳۲ علی رستمی
این دستور به نظر من کاربردی تره بازم به نظر خودت بستگی خودت داره سعید جان :)
wget -r -l1 -H -t1 -nd -N -np -A.zip -erobots=off [url of website]
-r            recursive
-l1           maximum recursion depth (1=use only this directory)
-H            span hosts (visit other hosts in the recursion)
-t1           Number of retries
-nd           Don't make new directories, put downloaded files in this one
-N            turn on timestamping
-A.zip        download only zips
-erobots=off  execute "robots.off" as if it were a part of .wgetrc
۲۹ دی ۹۴ ، ۱۶:۳۵ علی رستمی
این دستور به نظر من کاربردی تره بازم به نظر خودت بستگی خودت داره سعید جان :)
wget -r -l1 -H -t1 -nd -N -np -A.zip -erobots=off [url of website]

-r            recursive
-l1           maximum recursion depth (1=use only this directory)
-H            span hosts (visit other hosts in the recursion)
-t1           Number of retries
-nd           Don't make new directories, put downloaded files in this one
-N            turn on timestamping
-A.zip        download only zips
-erobots=off  execute "robots.off" as if it were a part of .wgetrc
پاسخ:
ممنون
این هم راه حل خوبیه. چون من می‌خواستم با axel دانلود کنم و راهنمای axel رو هم خوندم. و یه راهکار با axel ارائه دادم.
wget هم خیلی کاربردی و خوبه.

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی