Olen tehnyt php-ohjelman joka käy keräämässä nettisivulta tuotetietoja. Esim sivuilta aukeavat tiedot:
http://www.url.com/info?p=1
http://www.url.com/info?p=2
http://www.url.com/info?p=3
.
.
.
(tuotesivuja on satoja)
Aikaisemmin olen hakenut tiedot "käsipelillä" availemalla niitä selaimella, mutta php-taitojen kartuttua tekee mieli käyttää automatiikkaa...
Luupilla käyn @fopen:lla lukemassa mitä html-koodia linkeistä tulisi, ja tallennan sitten tiedot jatkokäsittelyä varten. Homma toimii hyvin vaikka en tiedä onko @fopen paras tuohon, netistä löytyi jotakin muitakin virittelyjä mutta tuon sain toimimaan. Ohjelmaa olen ajanut omalla koneeella xamppissa (kiitos vaan täältä saaduista neuvoista!).
Ongelma tulikin sitten kun pitäisi saada tietoa myös sivuilta jonne pitää kirjautua sisälle. Käyttötunnukset minulla totta kai on, ja sen verran sain selviteltyä että kirjautumisen jälkeen sivusto tallentaa evästeen, jossa on joku n 30-merkkinen heksapötkö. Näiltä suljetuilta sivustoilta lukeminen tuolla @fopenilla ei kuitenkaan toimi, sivuston antama palaute on että se ei tunnista minua. Jos yhtään olen ymmärtänyt oikein niin ongelma on ettei php-ohjelmani osaa "vastata" sivuston evästepyyntöön ja homma tössää siihen. Onko mitään ratkaisuja???
https://www.php.net/cURL
ja ai että on hauskaa jos on sivuston HTML/rakenne on vähän mitä sattuu, substr
+ strpos
parsiminen on suht epämiellyttävää verrattuna DOMin käyttöön. Fopenin
tilalla voit käyttää file_get_contents
. Jos käytät pelkästään tietojen hakemiseen ja parsintaan, etkä tarvitse sitä HTTP-serveriä, niin Xamppi on yliammuntaa, pelkkä PHP riittää.
Tulee mieleen eräs "vakoilusofta", jonka joskus tein. Se skannasi kilpailijan clovershopin tuotteet läpi, tallensi niistä lähinnä varastosaldot. Kun tuota ajeli säänöllisesti, niin sai helppoa statistiikkaa mitä kilpailija myy :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.