網頁

2008年5月8日 星期四

用shell script 寫MLB 先發投手(Probable Pitchers)的查詢

想知道幾個有興趣的投手, 接下來幾天是否先發, 因此用sh去MLB的網頁查詢, 將五天內的先發資料找出來, 並寄信到自己的信箱, 每天就可以去看看這些投手的比賽狀況, 而不用每次在一堆資料中找出投手是否先發, 或是那一天先發, 實在是輕鬆了不少.
最大的目的, 是除了看王建民先發外, 也關心那些和王建民在爭投王的投手, 以及電玩人投手的情形.
  1. #!/bin/sh
  2. mymatch()
  3. {
  4.   name=`echo $1 | perl -ne '$_ =~ /^(.*)\|.*/; print $1;'`
  5.   team=`echo $1 | perl -ne '$_ =~ /^.*\|(.*)/; print $1;'`
  6.   if grep -e ">$name," $pp_html; then
  7.     echo "  $team, $name" >> $pp_txt
  8.   fi
  9.   #grep -e "$1," $pp_html | perl -ne '$_ =~ m/b>([a-zA-Z-.]*\s\w*,\s[A-Z]*)/; print $1 . "\n";' >> $pp_txt
  10. }
  11. pp_html=ProbablePitchers.html
  12. pp_txt=ProbablePitchers.txt
  13. echo "" > $pp_txt
  14. days="-1d#+0d#+1d#+2d#+3d"
  15. pitchers="Chien-Ming Wang|NYY#Andy Pettitte|NYY#Mike Mussina|NYY#Darrell Rasner|NYY#Kei Igawa|NYY#Phil Hughes|NYY#Ian Kennedy|NYY#Ervin Santana|LAA#Joe aunders|LAA#Cliff Lee|CLE#C.C. Sabathia|CLE#Daisuke Matsuzaka|BOS#Josh Beckett|BOS#Johan Santana|NYM#Brandon Webb|ARI#Roy Halladay|TOR"
  16. IFS=#
  17. for day in $days; do
  18.   d=`date -v $day "+%Y%m%d"`
  19.   fetch -o $pp_html 'http://mlb.mlb.com/news/probable_pitchers.jsp?c_id=mb&ymd='$d
  20.   echo "$d" >> $pp_txt
  21.   for pitcher in $pitchers; do
  22.     mymatch $pitcher
  23.   done
  24.   echo "" >> $pp_txt
  25. done
  26. echo "Tracing Pitchers" >> $pp_txt
  27.   for pitcher in $pitchers; do
  28.     echo "  $pitcher" >> $pp_txt
  29.   done
  30. today=`date "+%Y/%m/%d"`
  31. tail -n100 $pp_txt | mail -s "[MLB]Probable Pitchers ($today)" "yourmail@gmail.com"
  32. rm $pp_html $pp_txt