À titre indicatif, ce que j’ai pondu pour les pages
boisson.homeip.net/RER.html
et
boisson.homeip.net/cgi-bin/MA.cgi
BeautifulSoup permet d’économiser 
getRER.sh (toutes les 5 mns)
#!/bin/sh
LANG=fr
LC_ALL=fr_FR
PATH=/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/usr/local/mupad/share/bin
cd /tmp
wget -q --timeout=60 http://www.transilien.com/ -O /tmp/tRER
export LIGNEOK=$(cat /tmp/tRER | grep -E "rer|afic" | grep "<img src=" | grep -A 1 "rer..png" | grep -B 1 trafic_ok | grep RER | sed -e '1,$s/^.*RER \(.\).*$/\1/' )
cd ~
echo -n $(date)": RER " >> RER
echo $LIGNEOK >> RER
./tauxRER.sh "$LIGNEOK"
tauxRER.sh
[code]#!/bin/bash
declare -a TAUX
declare -a JOURNEE
declare -a SEMAINE
declare -a MOIS
declare -a MAUVAIS
TOTAL=$(grep -c “” RER)
#echo $TOTAL
j=0
for i in A B C D E ; do
j=$(($j+1))
TAUX[$j]=$(expr 1000 * $(grep -v -c -E “RER .$i" RER) / $TOTAL | sed -e ‘s/(.)$/.\1/’ | sed -e ‘s/^./0./’)
if $(tail -n 1 RER | grep -q -c -E "RER .$i”) ; then
MAUVAIS[$j]=0
else
MAUVAIS[$j]=1
fi
TEMP=$(tail -n 288 RER | grep -v -c -E “RER .$i")
JOURNEE[$j]=expr 1000 \* $TEMP / 288 | sed -e 's/\(.\)$/.\1/' | sed -e 's/^\./0./'
TEMP=$(tail -n 2016 RER | grep -v -c -E "RER .$i”)
SEMAINE[$j]=expr 1000 \* $TEMP / 2016 | sed -e 's/\(.\)$/.\1/' | sed -e 's/^\./0./'
TEMP=$(tail -n 8064 RER | grep -v -c -E “RER .*$i”)
MOIS[$j]=expr 1000 \* $TEMP / 8064 | sed -e 's/\(.\)$/.\1/' | sed -e 's/^\./0./'
#echo $"TAUX$i"
done
DIR=pwd
cd /tmp
cat > /var/www/RER.html <<EOF
État du RER à Paris
Ligne concernée |
État actuel |
% problèmes sur 24h |
% sur 7 jours |
% sur un mois |
depuis le 22/11/2012 |
EOF
j=0
for i in A B C D E ; do
j=$(($j+1))
echo "
RER $i | " >> /var/www/RER.html
echo "![]() | " >> /var/www/RER.html
echo "${JOURNEE[$j]} % | " >> /var/www/RER.html
echo "${SEMAINE[$j]} % | " >> /var/www/RER.html
echo "${MOIS[$j]} % | " >> /var/www/RER.html
echo "${TAUX[$j]} % |
" >> /var/www/RER.html
done
cat >> /var/www/RER.html <<EOF
Détails des problèmes, notez que TRANSILIEN ne signale PAS tous les problèmes surtout sur le RER D.
EOF
cd $DIR
NO=
for i in A B C D E ; do
PANNE=$(grep "Etat du trafic RER *$i" /tmp/tRER | sed -e 's|^.*tat du trafic RER.*">\(.*\).*$|\1|' | recode -d u8..h4)
if [ ! -z "$PANNE" ] ; then
echo $PANNE"
" >> /var/www/RER.html
if [ -z $NO ] ; then
date >> PannesRER
NO=Yes
fi
echo $PANNE>> PannesRER
fi
done
cat >> /var/www/RER.html <<EOF
EOF
[/code]
[code]#!/bin/sh
echo Content-type: text/html
echo ""
PATH=/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/usr/local/mupad/share/bin
if [ -z $1 ] ; then
NUM=7
else
NUM=$1
fi
cat <<EOF
EOF
USER=francois wget -q "http://www.transilien.com/gare/pagegare/filterListeTrains?codeTR3A=MFA&destination=PARIS+GARE+DE+LYON&ligne=&nomGare=MAISONS+ALFORT+ALFORTVILLE&x=38&y=10" -O - | html2text -nobs -ascii| grep "D]" | grep -v "\[D\]" | (while read LIGNE ; do
if (echo $LIGNE | grep -q -v "Voir") ; then
DEST=$DEST" "$(echo $LIGNE | sed -e 's/^.*D] *//' | sed -e 's/^.*\[RER *//')
else
TRAIN=$(echo $LIGNE | sed -e '1,$s/.*D\] *//' | sed -e'1,$s/\[RER *//' | sed -e '1,$s|^ *\([A-Z0-9][A-Z0-9][A-Z0-9][A-Z0-9]\) *\([^ ]*\) *\(.*\) *Voir.*\(..\)$|\1|')
HORAIRE=$(echo $LIGNE | sed -e '1,$s/.*D\] *//' | sed -e'1,$s/\[RER *//' | sed -e '1,$s|^ *\([A-Z0-9][A-Z0-9][A-Z0-9][A-Z0-9]\) *\([^ ]*\) *\(.*\) *Voir.*\(..\)$|\2|')
DEST=$DEST" "$(echo $LIGNE | sed -e '1,$s/.*D\] *//' | sed -e'1,$s/\[RER *//' | sed -e '1,$s|^ *\([A-Z0-9][A-Z0-9][A-Z0-9][A-Z0-9]\) *\([^ ]*\) *\(.*\) *Voir.*\(..\)$|\3|')
VOIE=$(echo $LIGNE | sed -e '1,$s/.*D\] *//' | sed -e'1,$s/\[RER *//' | sed -e '1,$s|^ *\([A-Z0-9][A-Z0-9][A-Z0-9][A-Z0-9]\) *\([^ ]*\) *\(.*\) *Voir.*\(..\)$|\4|')
fi
if (echo $LIGNE | grep -q "^D]") ; then
echo "
$TRAIN |
$HORAIRE |
${DEST} |
Voie $VOIE |
"
DEST=""
fi
done) | recode -d u8..h4
# | grep ".*RER D.*RER [A-Z0-9][A-Z0-9][A-Z0-9][A-Z0-9] " | sed -e '1,$s|^.*RER \([A-Z0-9][A-Z0-9][A-Z0-9][A-Z0-9]\) *\([^ ]*\) *\(.*\) *Voir.*\(..\)$|
\1 | \2\3 |
\4 |
|' | recode -d u8..h4
cat <<EOF
EOF
[/code]