首页 > 技术文章 > linux学习:wget与lynx用法整理

LO-gin 2017-05-27 16:51 原文

指令: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.
-----------------------------------------------------

推荐阅读