ممنون از پاسخ های دوستان
مثلا برای این آدرس:
http://www.bbc.co.uk/worldservice/learningenglish/language/wordsinthenews/
می خوام فقط لینک هایی که تو همین صفحه هست رو باز کنه و فایل های pdf و mp3 داخلش رو دانلود کنه چجوری باید wget رو تنظیم کنم؟
سجاد جان، من جات بودم حس بدی پیدا می کردم که چرا هیچ کس درست جواب نمی ده. دلیلش اینه که می گیم سوال باید هوشمندانه باشه. یک تلاش بکن. بگو چه دستوری تست کردی و چه مشکلی داشت و بعد آدم ها می گن اشکالش چیه ولی الان سوال برای من که هر روز با wget کار نمی کنم اینه «من لازم دارم در این صفحه لینک ها باز بشن و فایل های ام پی تری و پی دی اف دانلود بشن. لطفا یکی بره راهنما رو نگاه کنه برام دستوری که لازم دارم رو بنویسه».
همیشه اگر می خوای این خطی که پیشنهاد می شه رو بری جلو باید راهنمای دستور (man wget) رو ببینی و بعد سعی کنی و ببینی به چه مشکلاتی بر می خوری و دقیق مطرح کنی که کجا گیر کردی که بشه جواب داد.
ببخشید که روده درازی می کنم ولی باعث پیشرفت دنیای لینوکس می شه (:
سوالم کلی بود قصدم محول کردن مشق شبم برای دیگران نبود
حالا با wget یا یه برنامه ی دیگه فرقی نمیکنه باید یه سر نخ هایی پیدا کنم بعد برم دنبالش.
الان با یه اسکریپتی که نوشتم کارم را افتاد:
اول همه ی لینک های آدرس مورد نظر رو با این دوتا دستور جدا می کنم داخل یه فایل می فرستم:
#!/bin/bash
proxychains wget -O main-source http://www.bbc.co.uk/worldservice/learningenglish/language/wordsinthenews/
grep -Po '(?<=href=")[^"]*' main-source > all-links.txt
بعد هر کدوم از لینک ها رو این اسکریپت باز میکنه فایل های pdf و mp3 رو جدا می کنه و داخل یه فایل ذخیره می کنه و میشه با هر برنامه ای این فایل ها رو دانلود کرد:
#!/bin/bash
FILE=all-links.txt
COUNTER=0
minimumsize=100
while read line; do
COUNTER=$[$COUNTER +1]
if [ -f p-$COUNTER ]; then
actualsize=$(stat -c %s p-$COUNTER )
echo "p-$COUNTER : {"
echo "line : $line"
if [ "$actualsize" -ge "$minimumsize" ]; then
echo "this is downloaded }"
else
proxychains wget -O p-$COUNTER $line -a log.txt
grep -Po '(?<=href=")[^"]*' p-$COUNTER | grep -E '(.mp3|.pdf)' >> main-dl.txt
fi
else
proxychains wget -O p-$COUNTER $line -a log.txt
grep -Po '(?<=href=")[^"]*' p-$COUNTER | grep -E '(.mp3|.pdf)' >> main-dl.txt
fi
done < $FILE