指令:wget、lynx、axel
wget url #下載數據寫入文件,下載的文件名與url中的文件名保持一致,下載信息或進度寫入stdout
wget url1 url2 url3 #下載多個文件
wget ftp://example.com/test.img -o download.img -o log #下載時日志或進度寫入日志文件,輸出文件為download.img
wget -t 5 url #下載文件,參數-t指定重試次數
wget --limit-rate 20k http://example.com/file.iso #對wget限速
wget -Q 100m url1 url2 #使用參數-Q或者--quota指定最大下載配額為100M,當下載的文件超過100M時,立即停止下載。
wget -c url #如果使用wget進行的下載在完成之前被中斷,可以利用選項-c從斷點開始繼續下載。即斷點續傳。
wget --mirror exameple.com #遞歸收集網頁上的所有URL鏈接並逐個下載,即整站下載
wget -r -N -l DEPTH url #同上,-l指定頁面層級DEPTH,-N允許對文件使用時間戳,-r表示遞歸
wget --user username --password passwd url #訪問需要認證的頁面
wget URL -post-data "name=value" -o output.html #post數據到URL,並將返回的數據寫入文件output.html
wget -r http://www.website.com #遞歸下載整個網站
wget -r -A png,pdf http://www.website.com #從一個網站下載指定類型的文件(例如 pdf 和 png).
lynx -dump http://www.test.com/index.html | grep -o "Rank-*" | sed 's/Rank-//; s/\[[0-9]\+\]//' | sort -nk 1 | awk '{ for(i=3;i<=NF;i++){ $2=$2" "$i } print "%-4s $s\n", $1,$2; }' > test.txt #lynx是一個命令行的網頁瀏覽器,訪問網址內容並寫入文件
axel -n 5 http://www.xxx.com/downloadfile.zip #5個線程下載
----------------------------------------
圖片抓取及下載:
filename:img_downloader.sh
運行:./img_downloader.sh http://www.test.com -d images
#!/bin/bash
if [ $# -ne 3 ];
then
echo "Usage: $0 URL -d DIRECTORY"
exit -1
fi
for i in {1..4}
do
case $1 in
-d) shift; directory=$1; shift ;;
*) url=${url:-$1}; shift;;
esac
done
mkdir -p $directory;
baseurl=$(echo $rul | egrep -o "https?://[a-z.]+")
curl -s $url | egrep -o "<img src=[^>]*>" | sed 's/<img src=\"\([^"]*\).*/\1/g' > /tmp/$$.list
sed -i "s|^/|$baseurl/|" /tmp/$$.list
cd $directory;
while read filename;
do
curl -s -O "$filename" --silent
done < /tmp/$$.list
----------------------------------------
網頁相冊生成器:
filename:web_images.sh
注:要使用convert需要iamgemagick支持。sudo apt-get install imagemagick
#!/bin/bash
echo "Creating album.."
mkdir -p thumbs
cat <<EOF > index.html
<html>
<head>
<style>
body
{
width:470px;
margin:auto;
border:1px dashed grey;
padding:10px;
}
img
{
margin:5px;
border:1px solid black;
}
</style>
</head>
<body>
<center><h1> #Album title </h1></center>
<p>
EOF
for img in *.jpg;
do
convert "$img" -resize "100x" "thumbs/$img"
echo "<a href=\"$img\" ><img src=\"thumbs/$img\" title=\"$img\" />
</a>" >> index.html
done
cat <<EOF >> index.html
</p>
</body>
</html>
EOF
echo Album gennrated to index.html
-------------------------------------------------
查找網站中的無效鏈接:
filename:find_broken.sh
if [ $# -eq 2]
then
echo -e "$Usage $0 URL\n"
exit -1
fi
echo Broken links:
mkdir /tmp/$$.lynx
cd /tmp/$$.lynx
lynx -traversal $1 > /dev/null
count =0;
sort -u reject.dat > links.txt
while read link;
do
output=`curl -I $link -s | grep "HTTP/.*OK"`;
if [[ -z $output ]];
then
echo $link;
let count++
fi
done < links.txt
[ $count -eq 0 ] && echo No broken links found.
-----------------------------------------------------