免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3998 | 回复: 10
打印 上一主题 下一主题

我下載足球報的 shell script [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-08-11 21:02 |只看该作者 |倒序浏览
這個我常用的,很簡單的 shell script ,目的是省回RMB$1.5 ,
#! /bin/bash
url=http://soccer.goalchina.net/dianziban/
temp=$HOME/url.$$
mydir=$HOME/soccer$(date +%Y%m%d)
trap "rm -rf $temp $mydir ; exit 1" 1 2 3 9
lynx --dump $url | sed '/ShowSoccer\./!d;s/  *[0-9][0-9]*\. //' | uniq > $temp
k=$(<$temp)
   [ -n "$k" ] || exit 1
     while read n ;do wget -P $mydir -c $n ; done < $temp
       j=0
       for i in $mydir/* ;do
           r=${i##*=}.jpg
           mv $i $mydir/$r
           [ $? -eq 0 ] && let "j += 1"
       done
echo "Total $j pages in $mydir"
rm -f $temp

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2005-08-12 09:35 |只看该作者

我下載足球報的 shell script

show脚本最好注释下。

论坛徽章:
0
3 [报告]
发表于 2005-08-12 09:43 |只看该作者

我下載足球報的 shell script

我等弱小者没看懂啊!麻烦站出来解释解释

论坛徽章:
0
4 [报告]
发表于 2005-08-12 10:37 |只看该作者

我下載足球報的 shell script

先赞一个!不过最好能俺说说,我头上好多雾啊!

论坛徽章:
0
5 [报告]
发表于 2005-08-12 13:15 |只看该作者

我下載足球報的 shell script

顶一下先,正在学习

论坛徽章:
0
6 [报告]
发表于 2005-08-12 17:35 |只看该作者

我下載足球報的 shell script

wget -r -np 似乎已经足够了。

省 1.5,可是捧着报纸阅读的悠闲没有了,还得正襟危坐在显示器前面,值吗? :)

论坛徽章:
0
7 [报告]
发表于 2005-08-15 22:38 |只看该作者

我下載足球報的 shell script

對不起,沒給註解。
# 這個是下載的url
url=http://soccer.goalchina.net/dianziban/
# temp file
temp=$HOME/url.$$
# 放置檔案的地方和名稱
mydir=$HOME/soccer$(date +%Y%m%d)
# 中途打斷 script 的處理,拆除未完成的檔案和 temp file
trap "rm -rf $temp $mydir ; exit 1" 1 2 3 9
# 用 lynx 得到檔案的url ,把沒用的過濾掉,如廣告
lynx --dump $url | sed '/ShowSoccer\./!d;s/  *[0-9][0-9]*\. //' | uniq > $temp
# 讀取 temp file
k=$(<$temp)
# 測試 temp file 是否為空,如是,退出
  [ -n "$k" ] || exit 1
# 使用 wget 下載,在 temp file 讀入
    while read n ;do wget -P $mydir -c $n ; done < $temp
#更名和計算頁數
      j=0
      for i in $mydir/* ;do
          r=${i##*=}.jpg
          mv $i $mydir/$r
          [ $? -eq 0 ] && let "j += 1"
      done
# 告知下載完成
echo "Total $j pages in $mydir"
rm -f $temp

论坛徽章:
0
8 [报告]
发表于 2005-08-16 19:43 |只看该作者

我下載足球報的 shell script

能不能把下面几句再解释详细一点?另外,脚本是如何判别页面中的url的?谢谢!

lynx --dump $url | sed '/ShowSoccer\./!d;s/  *[0-9][0-9]*\. //' | uniq > $temp

k=$(<$temp)

while read n ;do wget -P $mydir -c $n ; done < $temp

论坛徽章:
0
9 [报告]
发表于 2005-08-20 09:09 |只看该作者

我下載足球報的 shell script

lynx --dump $url | sed '/ShowSoccer\./!d;s/  *[0-9][0-9]*\. //' | uniq > $temp

利用 lynx --dump 取得 links , 那些 links 含有 ShowSoccer.就是我要下載的,
用 sed 的 regexp '/ShowSoccer\./' 指定, !d 是 sed 的「不要拆除」,相等
于 sed -n '/...../p'  `;' 是sed 用來分隔命令,相等于 sed -e '.......' -e '.......' ,因為lynx --dump 在每個 links 加入了 一個以上的空格和數字,
用 sed 的 s 命令拆除, /  *[0-9][0-9]*\. / 是一個表示式
也可寫成 / \{1,\}[0-9]\{1,\}\. /
表示一個或以上的空格緊隨一個或以上的數字加一點及一個空格
uniq 把相同的links 不要
k=$(<$temp)
是 bash 的寫法,等于 k=`cat $temp`,不過沒有呼叫 cat ,理論上
速度快些。
while read n ;do wget -P $mydir -c $n ; done < $temp
用 while read的方式使 Wget 從 $temp 讀入 links 下載並
存到指定的目錄。

论坛徽章:
0
10 [报告]
发表于 2005-08-20 11:49 |只看该作者

我下載足球報的 shell script

8错8错,收藏,学习。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP