Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Tiedon automaattinen parsiminen webbisivuilta

lakeus [14.03.2014 20:33:17]

#

Ongelmana on että suosimani sulkapallokeskuksen lähes kaikki vuorot ovat iltaisin varattuna. Heillä on webissä toimiva ajanvaraus josta voi varailla peruutusvuoroja. On kuitenkin työlästä käydä vähän väliä heidän sivuillaan katsomassa josko vuoroja olisi vapautunut.

Ongelman ratkaisemiseksi ajattelin tehdä ohjelman joka käy tarkistamassa vapaat vuorot automaattisesti säännöllisin väliajoin ja ilmoittaa josko uusia vuoroja on vapautunut. Koko ajanvaraus-järjestelmä perustuu ihan staattisiin html-sivuihin, joten näiden parsiminen lienee yksinkertaista? Millähän kielellä tuollainen ohjelmanpätkä kannattaisi rakentaa? Itseäni kiinnostaisi opiskella hieman Pythonia ja siihen on pikaisen etsinnän perusteella ainakin Scrapy-niminen framework jolla parsiminen näyttää yksinkertaiselta. Täältä varmaan löyty ihmisiltä näkemyksiä millä työkaluilla homman saisi tehtyä helposti.

Metabolix [14.03.2014 20:45:51]

#

Saa tehtyä helposti monillakin eri työkaluilla, jos osaa. Olennaisinta on, mitä itse osaat etukäteen. Jos taas ohjelmointi on sinulle melko vierasta (”kiinnostaisi opiskella”), ei ehkä ole helppoa millään.

Esimerkiksi itse saisin varmaan homman nopeiten tehtyä PHP:llä ja cURLilla, koska se on tuttu yhdistelmä. Jos ei tarvita edes kirjautumista vaan yksi sivunlataus, cURLin voi vaihtaa yksinkertaisesti funktioon file_get_contents.

lakeus [14.03.2014 22:08:47]

#

Joo jäi mainitsematta oma tausta. Eli kokemusta ohjelmoinnista on ammattina yli 10 vuotta, mutta ei webbipuolelta vaan mobiilipuolelta sekä PC-maailmasta.

Sivunlatauksia tarvitaan parikin.
Ensin pitää avata tietty URL, josta tulee uudelleenohjaus.
Sitten pitää valita valikosta laji (sulkapallo) ja klikata OK-nappia.
Tämän jälkeen pitää vielä valita kalenterista päivä jonka vuoroja haluaa selata.

Tässä vielä URL ajanvaraukseen:
http://rms.nextime.fi/rms/cmr/nallisport

En osaa äkkiseltään sanoa miten paljon noita eri vaiheita voi oikoa tahi helposti automatisoida.

Eikö PHP ole tarkoitettu ajettavaksi webbiserverillä? Haluaisin ohjelman pyörivän ihan omalla koneella vaikka komentoriviltä ensin.

Metabolix [14.03.2014 22:33:31]

#

PHP on ihan yhtä yleiskäyttöinen skriptikieli kuin Pythonkin.

Yksinkertainen tapa lähestyä ongelmaa on, että seuraat selaimesi kehitystyökaluilla, millaisia pyyntöjä (GET, POST, parametrit) sivulla liikkuminen aiheuttaa, kun itse haet haluamasi tiedon. Sitten vain ohjelman, joka tekee vastaavat pyynnöt (mutta oikealle päivämäärälle) ja säilyttää välissä evästeet. Käytännössä voit vaikka ottaa lähtökohdaksi edellä linkittämäni koodivinkin ja vaihtaa siihen vain sopivat sivunlataukset parametreineen.

Kun saat oikean sivun ladattua, voit siirtyä seuraavaan vaiheeseen eli tiedon etsimiseen kyseiseltä sivulta (eli HTML-koodista). Voit käyttää säännöllisiä lausekkeita tai jotain DOM-kirjastoa.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta