Jau senai berašiau tai nusprendžiau parašyt:) Neturiu nei noro nei laiko daug galvot, todėl parašysiu tiesiog tai su kuo šiandien susidūriau, taip sakant kas ant liežuvio galo.

Kai kurie puslapiai siūlo turiny, bet ne tokia forma kokios mums reikia. Aš noriu turėt dainą kompe, o ne klausyt internete; aš noriu paveiksliukus žiūrėt su „feh“, o nespaudinėt pele ant visų iš eilės 🙂

Yra puslapis, jame yra dainų, man reikia tų dainų:

Nueinam http://www.algimantasbutnorius.lt/galerijos/dainos savaime aišku galim būtų atvert kokią nors garso redagavimo programą ir įrašyt(kaip šaltinį pasirenkam „waveout“) dainą paleidus ją internete, bet tai užtruktų labai ilgai. Vienu žodžiu per daug vargo, todėl reikia kito būdo.

Išsaugom puslapį ir pažiūrim kas ten rašoma(firefox turi įrankį „Tyriklis“, užvedam pelę ant mygtuko „groti“ ir iškart matom reikalingą info. Nereikia vargt su pradiniu kodu). Patyrinėjus pradinį kodą matom jog ten yra surašyti mp3 adresai, belieka juos pasiimti ir parsisiųsti failus 🙂

Mums reikalinga dalis yra

<object width="200" height="20" bgcolor="" data="/components/com_uploadmusic/mp3/dewplayer.swf?son=http://algimantasbutnorius.lt/components/com_uploadmusic/mp3/ZEME APVALI.mp3&amp;autoplay=0&amp;autoreplay=0" type="application/x-shockwave-flash">

Reikia iškrapštyti reikalingą tekstą:

sed -n "s/.*(http://algimantasbutnorius.lt/component/com_uploadmusic/mp3/.*mp3).*/1/p" a.htm>mp3.txt

Dabar reikia parsisiųsti tuos failus:

wget -i mp3.txt

Va ir padarėm tai ko reikėjo:)

Muzikos jau turim, dabar reikia paveiksliukų telefonui:)

Nueinam http://seclub.org susirandam paveiksliukų, matom daug kategorijų ir jose daug paveiksliukų…

…gymka mąstė, mąstė…

#!/bin/bash
#scenarijus parašytas senai, gali būt jog nebeveikia, bet parodyt principą tai pats tas:)
kategorijos=(75 18 20 42 21 43 55 24 71 34 51 45 49 22 67 68 26 47 69 27 28 66 29 70 31 25 54 50 52 30)
#url yra http://seclub.org/dn.php?d=1&q=3&r=9&c=75 c=kategorija, kiti skaičiai turbūt turinio tipas ir raiška, aš ten perdaug nesigilinau, ne tame esmė. Tai reikia surinkt visas kategorijas į vieną masyvą ir atlikt tuos pačius veiksmus su visom kategorijom. Tam parašom funkciją.

function parsiust()
{
kiek=$(wget -qO- "http://seclub.org/dn.php?d=1&q=3&r=9&c=$1"|sed -n 's/.*Всего: ([0-9]*).*/1/p')
#adrese yra puslapio numeris, todėl reik išsiaiškint kiek išvis yra tų puslapių. Kadangi yra eilutė kiek išvis yra paveiksliukų toj kategorijoj ir žinom jog kiekvienam puslapy po 10, tai belieka visų paveiksliukų skaičių padalint iš 10, jei skaičius nelygus tada +1.
kiek2=$(calc 22/10|sed 's/.*..*/1/')
if [ $kiek2 == '1' ]
then
puslapiu=$[$kiek/10+1]
else
puslapiu=$kiek2
fi

i="1"
while [ "$i" -le "$puslapiu" ]
do
wget -qO- "http://seclub.org/dn.php?d=1&q=3&r=9&c=$1"|grep 'http://files.seclub.org/.*'|sed 's/.*<a href="(http://files.seclub.org/pic.*)".*/1/'>>links.txt
echo $1:$i
#kiekvienam puslapy yra adresai į paveiksliukus, belieka juos iškrapštyt iš failo ir surašyt į vieną txt failą.
i=$[$i+1]
done
}
rm links.txt

for y in "${kategorijos[@]}"
do
parsiust $y
done
wget -i links.txt
#adresai išgauti ir surašyti į failą, belieka parsiųsti visus failus
rm links.txt

P. S. Savaime aišku aš negaliu užrašyt ką daryt kiekvienu atveju, nėra tokios formulės kuri tiktų visom įmanomom situacijom ir visiem puslapiams, tik patirtis gali padėt sugalvot kaip prieit prie kiekvieno puslapio. Šitam įraše aš tiesiog noriu parodyt kelis konkrečius pavyzdžius kaip padaryt tai ko jums reikia, aš nesiruošiu mokint galvot 🙂