Portál AbcLinuxu, 9. května 2025 22:50
INFILE="http://adresa/dokument.html" wget -O - $INFILE | ( # nejake promenne jenz mozna budeme potrebovat PROMENNA= ... while read LINE; do # budeme hledat pozadovana data a na zaklade jejich vyskytu neco podnikneme echo $LINE | grep -q 'co hledame' if [ $? -eq 0 ]; then # nalezeno - neco udelame ... else # nenalezeno - delej neco jineho ... fi ... # popripade si i neco updavime a zapamatujeme PROMENNA=`echo $LINE | sed -e 's/vzor/substituce/'` ... # a mozna i neco vypiseme printf "vystup" done )
#!/usr/bin/bash # INFILE="http://www.abclinuxu.cz/data/prilohy/9/9/175399-pocasi-1837466145685031135.html" wget -O - $INFILE | ( INDAY=0 while read LINE; do if [ $INDAY -eq 1 ]; then if [ $PART -eq 0 ]; then echo $LINE | grep -q 'div class="cLeft"' if [ $? -eq 0 ]; then PART=1 else DAY=`echo $LINE | sed -e 's/.*<h4>\(.*\)<\/h4>.*/\1/'` fi else if [ $PART -eq 1 ]; then echo $LINE | grep -q 'div class="cRight"' if [ $? -eq 0 ]; then PART=2 else echo $LINE | grep -q ' title="' if [ $? -eq 0 ]; then DOP_TYP=`echo $LINE | sed -e 's/.* title="\(.*\)" .*/\1/'` else echo $LINE | grep -q '<p>.*<\/p>' if [ $? -eq 0 ]; then DOP_TEMP=`echo $LINE | sed -e 's/.*<p>\(.*\)<\/p>.*/\1/'` else echo $LINE | grep -q '>.*<\/a><' if [ $? -eq 0 ]; then DOP_LABEL=`echo $LINE | sed -e 's/.*>\(.*\)<\/a><br.*/\1/'` fi fi fi fi else echo $LINE | grep -q '<\/div>' if [ $? -eq 0 ]; then printf "[$DAY]\n" printf "\t$DOP_LABEL - $DOP_TYP - $DOP_TEMP\n" printf "\t$ODP_LABEL - $ODP_TYP - $ODP_TEMP\n" INDAY=0 PART=0 DAY= DOP_LABEL= DOP_TYP= DOP_TEMP= ODP_LABEL= ODP_TYP= ODP_TEMP= else echo $LINE | grep -q ' title="' if [ $? -eq 0 ]; then ODP_TYP=`echo $LINE | sed -e 's/.* title="\(.*\)" .*/\1/'` else echo $LINE | grep -q '<p>.*<\/p>' if [ $? -eq 0 ]; then ODP_TEMP=`echo $LINE | sed -e 's/.*<p>\(.*\)<\/p>.*/\1/'` else echo $LINE | grep -q '>.*<\/a><' if [ $? -eq 0 ]; then ODP_LABEL=`echo $LINE | sed -e 's/.*>\(.*\)<\/a><br.*/\1/'` fi fi fi fi fi fi else echo $LINE | grep -q 'div class="cDay"' if [ $? = 0 ]; then INDAY=1 PART=0 DAY= DOP_LABEL= DOP_TYP= DOP_TEMP= ODP_LABEL= ODP_TYP= ODP_TEMP= fi fi done )
wget
, potom něco na parsování, třeba sed
nebo awk
.
Znáte některý z těchto nástrojů? Víte jak se v bash předávají data mezi jednotlivými nástroji? Pro jednoduchost vám doporučuji stáhnout stránku wgetem, a následně parsovat stažený soubor. Až nebudete vědět jak dál, podělte se o váš výsledek.
Vy jste to za ten týden ještě nevyřešil?lol
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.