Uitlezen gegeven My Vodafone site.

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 03-05 15:30
Hallo,

Misschien een vreemde vraag, maar ik zou graag willen weten waar de gegevens op My Vodafone vandaag komen.

Wat wil ik met die gegevens?
Die wil ik gebruiken in een iPhone applicatie die ik ga maken. Met die applicatie kun je je beltegoed en abonnement verbruik opvragen.

Zo'n applicatie bestaat toch al?
Klopt, alleen is de grootste klacht dat die ontzettend traag is. Volgens mij parsed diegene de hele My Vodafone website, wat snelheid niet ten goede komt.
Ik wil het dus anders aanpakken en alleen de nodige gegevens inladen.

Wat heb ik zelf gedaan?
Ik heb met behulp van Firebug de website volledig doorgeplozen, alleen kon niet uitvinden hoe de website opgebouwd wordt.

In de broncode zie je "<!-- portlet 10 -->" staan. Daarbinnen wordt de informatie geplaats.
Daarin staat een div met als id "selfprovisioning_dashboard"... Hierbij zit ook een script "selfprovisioning.js" alleen het enige wat die doet is een simpele AJAX Post uitvoeren. Via Firebug krijgt hij als response op die AJAX Post de complete My Vodafone site alleen dan met ingevulde bedragen/gegevens.

Met de POST Request sturen ze de volgende gegevens mee:
_fp: info
_fs: es_prive_my vodafone_verbruik en prijsplan_costcontrol
_st: [leeg]
getdata: true

Ik ben bang dat de volledige site daar met PHP/ASP volledig geparsed wordt en vervolgens met behulp van AJAX geplaats wordt. Vandaar waarschijnlijk ook de extreem trage website. :)

Als dat het geval is zal ik de gegevens niet op een andere manier kunnen uitlezen denk ik. Want het uitlezen van alleen de benodigde gegevens gaat natuurlijk stukken sneller...

Ik zit nu zelf met de vraag: is het mogelijk wat ik wil? Of heeft iemand dit ooit eerder gedaan?
Als iemand me weer een beetje in de goede richting op weg kan helpen zou super zijn.

Chookity-pok


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Wat wil je nu precies weten? Wil je weten hoe je de gevens uit de web site kunt halen ( Screen scraping ), of wil je weten hoe de Vodafone pagina opgebouwd word?

Als het dat laatste is dan is het topic hier ieder geval niet op de goed plek, want dat is gewoon clientside.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • RammY
  • Registratie: Oktober 2001
  • Laatst online: 15-04 18:25

RammY

Dát!

Ik zou zeggen... vraag het Vodafone zelf eens of anders de maker van de andere app...
Die zullen je waarschijnlijk meer op weg kunnen helpen denk ik.

Deze advertentieplaats is te huur!


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 03-05 15:30
Woy schreef op donderdag 18 juni 2009 @ 12:44:
Wat wil je nu precies weten? Wil je weten hoe je de gevens uit de web site kunt halen ( Screen scraping ), of wil je weten hoe de Vodafone pagina opgebouwd word?

Als het dat laatste is dan is het topic hier ieder geval niet op de goed plek, want dat is gewoon clientside.
Ik wil inderdaad weten hoe ik die gegevens uit de website kan halen. Een manier om alleen de benodigde gegevens (bijvoorbeeld bij prepaid: het resterende beltegoed) te verkrijgen. Wist niet dat dat screen scraping heet...
RammY schreef op donderdag 18 juni 2009 @ 12:47:
Ik zou zeggen... vraag het Vodafone zelf eens of anders de maker van de andere app...
Die zullen je waarschijnlijk meer op weg kunnen helpen denk ik.
Ik denk dat Vodafone mailen niet veel zin heeft. Dikke kans dat ik een reactie van een helpdeskmedewerker krijg die er totaal niets vanaf weet.
Maken van andere programma mailen haalt denk ik ook weinig uit omdat hij ten eerste een te trage manier gebruikt. En ik denk ook niet dat hij zijn geheim gaat vertellen aan iemand anders...

Vandaar mijn topic hier, om hulp te krijgen van mensen die ervaring met dit soort dingen hebben...

Chookity-pok


Acties:
  • 0 Henk 'm!

  • MaZo
  • Registratie: Mei 2002
  • Niet online
Waarom vraag je het niet aan de persoon die die andere applicatie gemaakt heeft?

Edit: te laat. :X

[ Voor 11% gewijzigd door MaZo op 18-06-2009 13:17 ]


Acties:
  • 0 Henk 'm!

  • Martkrui
  • Registratie: Februari 2002
  • Laatst online: 27-04 20:31
Ik heb hier ook al naar gekeken om dezelfde reden, maar het zit inderdaad niet eenvoudig in elkaar.

Je kan met firebug wel zien dat er nog nieuwe requests gedaan worden maar hier zitten grote session id's in dus ik neem aan dat je eerst de login moet simuleren om de session ID te achterhalen.

Ik zal vanavond nog eens gaan pluizen. Zo'n app zou wel handig zijn idd.

I haven't lost my mind! It's backed up on tape somewhere!


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Saeverix schreef op donderdag 18 juni 2009 @ 13:14:
[...]
Ik wil inderdaad weten hoe ik die gegevens uit de website kan halen. Een manier om alleen de benodigde gegevens (bijvoorbeeld bij prepaid: het resterende beltegoed) te verkrijgen. Wist niet dat dat screen scraping heet...
Maar dit zijn dus al 2 verschillend dingen, ten eerste zal je een request naar de vodafone server moeten doen die de juiste gegevens ophaalt, ten tweede zal je de data die dat request oplevert moeten parsen zodat je de juiste gegevens uit het resultaat verkrijgt.

Het tweede gedeelte is het screen-scraping.

Het uitpluizen welke request je naar de vodafone server moet doen, is iets wat niet echt in PRG past. Als je problemen hebt met het parsen van de data dan zul je wat specifieker moeten zijn wat het probleem is.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Tjolk
  • Registratie: Juni 2007
  • Laatst online: 12:49
Ik heb geen vodafone, maar bij Bol.com heb ik iets dergelijks op kunnen lossen met reguliere expressies. Zorgen dat je de juiste pagina op beeld krijgt en daaruit de gegevens opvragen en die vervolgens parsen.

Tjolk is lekker. overal en altijd.


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 03-05 15:30
Woy schreef op donderdag 18 juni 2009 @ 13:53:
[...]
Het uitpluizen welke request je naar de vodafone server moet doen, is iets wat niet echt in PRG past.
Waar past dat dan wel goed in? Dit was de eerst ingeving die ik kreeg bij het idee...
Eigenlijk is het een beetje reverse engineering toch? En dat valt bij mij onder Programming. Vandaar mijn keuze.
SFB schreef op donderdag 18 juni 2009 @ 13:57:
Ik heb geen vodafone, maar bij Bol.com heb ik iets dergelijks op kunnen lossen met reguliere expressies. Zorgen dat je de juiste pagina op beeld krijgt en daaruit de gegevens opvragen en die vervolgens parsen.
Is dat juist niet het punt waar het heel erg traag van gaat worden? Want bij vodafone krijg je niet specifiek het gedeelte met de benodigde informatie die je kan parsen, maar de volledige broncode van de website.

offtopic:
Ik moet er ook bij zeggen dat ik de site van Vodafone verschrikkelijk vind qua broncode. Hoezo onoverzichtelijk en omslachtig...

Chookity-pok


Acties:
  • 0 Henk 'm!

  • Tjolk
  • Registratie: Juni 2007
  • Laatst online: 12:49
Saeverix schreef op donderdag 18 juni 2009 @ 14:23:
Is dat juist niet het punt waar het heel erg traag van gaat worden? Want bij vodafone krijg je niet specifiek het gedeelte met de benodigde informatie die je kan parsen, maar de volledige broncode van de website.
Klopt, ik was niet geheel duidelijk. Wat ik bedoel is dat je PHP (of wat je dan ook wil gebruiken) de broncode laat inlezen. Dat laat je de server doen, en dus niet je telefoon. De server moet dat vlot genoeg kunnen. En vanuit die broncode laat je de server dus zoeken naar patronen waarbinnen de code staat die jij nodig hebt. Dat vis je eruit, en presenteer je op de door jou gewenste manier.

Tjolk is lekker. overal en altijd.


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 03-05 15:30
Ik zou inderdaad het programma op de telefoon de data via mijn eigen site kunnen laten opvragen. Waarop mijn site eerst de Vodafone site moet scannen en parsen. Alleen bij die gedachte denk ik al aan "traaaaag".

Als ik het de applicatie zelf laat doen moet de telefoon het doen. En zou het uberhaupt mogelijk zijn met Objective-C (Xcode)?

Chookity-pok


Acties:
  • 0 Henk 'm!

  • MsG
  • Registratie: November 2007
  • Laatst online: 16:58

MsG

Forumzwerver

Is het niet zo dat de applicatie traag is door de vodafone site zelf? Kan aan mij liggen maar de vodafone website is al sinds dat ik abbonee ben (september vorig jaar) pokketraag :). Of weet jij van diegene hoe hij zijn applicatie op heeft gebouwd?

Denk om uw spatiegebruik. Dit scheelt Tweakers.net kostbare databaseruimte! | Groninger en geïnteresseerd in Domotica? Kom naar DomoticaGrunn


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Je kunt toch gewoon met curl dezelfde dingen die jij ook doet in je browser? Dan laad je de source in van de pagina die je wilt. Met DOM-functies binnen een serverside taal (bijv. PHP) haal je daar de info uit die je wilt. Die file roep jij aan op je telefoon en dan zit de overhead van data op je webserver ipv. op je iPhone.

edit: pff...eerst andere comments lezen, dan posten spuit 11 :)

[ Voor 9% gewijzigd door Cartman! op 18-06-2009 16:45 ]


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 03-05 15:30
MsG schreef op donderdag 18 juni 2009 @ 16:43:
Is het niet zo dat de applicatie traag is door de vodafone site zelf? Kan aan mij liggen maar de vodafone website is al sinds dat ik abbonee ben (september vorig jaar) pokketraag :). Of weet jij van diegene hoe hij zijn applicatie op heeft gebouwd?
Daarom zoek ik ook naar een andere manier. Om alleen (via een bepaalde url) de benodigde informatie op te vragen. Op die manier hoef ik niet op de trage site te wachten en hoef ik de hele broncode niet te parsen (wat ook weer tijd inneemt).

Alleen ik heb zo een vermoeden dat dat moeilijk gaat worden. Tenzij Vodafone mee wil werken. Maar dat geef ik een kleine kans :(

Chookity-pok


Acties:
  • 0 Henk 'm!

  • ppx17
  • Registratie: December 2007
  • Laatst online: 17-04 16:47
Saeverix schreef op donderdag 18 juni 2009 @ 16:37:
Ik zou inderdaad het programma op de telefoon de data via mijn eigen site kunnen laten opvragen. Waarop mijn site eerst de Vodafone site moet scannen en parsen. Alleen bij die gedachte denk ik al aan "traaaaag".

Als ik het de applicatie zelf laat doen moet de telefoon het doen. En zou het uberhaupt mogelijk zijn met Objective-C (Xcode)?
In het geval dat je het door een externe server laat ophalen en voor-verwerken zal ik dat hoe dan ook op cache basis doen. Gewoon zorgen dat de server het regelmatig ophaalt en ergens wegschrijft zodat het bij een aanvraag van je iPhone direct beschikbaar is.

40D | 8 | 50 | 100 | 300


Acties:
  • 0 Henk 'm!

  • posttoast
  • Registratie: April 2000
  • Laatst online: 13:48
ppx17 schreef op donderdag 18 juni 2009 @ 16:48:
[...]

In het geval dat je het door een externe server laat ophalen en voor-verwerken zal ik dat hoe dan ook op cache basis doen. Gewoon zorgen dat de server het regelmatig ophaalt en ergens wegschrijft zodat het bij een aanvraag van je iPhone direct beschikbaar is.
Ja, alleen slaat die externe server dan alle gegevens op van al die gebruikers van de applicatie. Het lijkt me niet dat je dat wilt.

omniscale.nl


Acties:
  • 0 Henk 'm!

  • Martkrui
  • Registratie: Februari 2002
  • Laatst online: 27-04 20:31
Saeverix schreef op donderdag 18 juni 2009 @ 16:37:
Als ik het de applicatie zelf laat doen moet de telefoon het doen. En zou het uberhaupt mogelijk zijn met Objective-C (Xcode)?
Misschien een onbeleefde vraag, maar hoeveel ervaring heb je met Xcode en iPhone apps ?


= edit =

Ontopic. Html bevat tags (zoals : myvodafone.dashboard.usage.priceplan.tegoed.start.month)
Als ik het goed zie gaat vervolgens een JS aan de gang om die tags te vervangen. JS is helaas niet te lezen ivm obfuscation)

[ Voor 26% gewijzigd door Martkrui op 18-06-2009 22:06 ]

I haven't lost my mind! It's backed up on tape somewhere!


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 03-05 15:30
Martkrui schreef op donderdag 18 juni 2009 @ 21:45:
[...]


Misschien een onbeleefde vraag, maar hoeveel ervaring heb je met Xcode en iPhone apps ?


= edit =

Ontopic. Html bevat tags (zoals : myvodafone.dashboard.usage.priceplan.tegoed.start.month)
Als ik het goed zie gaat vervolgens een JS aan de gang om die tags te vervangen. JS is helaas niet te lezen ivm obfuscation)
Weinig... Ben redelijk ervaren met PHP en Javascript en zocht daarom een uitstapje naar een echt platform.
Ik heb toen voor OS X gekozen. Ik heb al wat simpele tutorials gedaan, zoals het maken van een simpele calculator. Alleen ik wou het nu eens wat uitgebreider doen, en had het idee om een beltegoed/bestatus programma te maken voor de iPhone die beter presteerd dan de huidige...

Ik vind dat gelijk een mooie uitdaging, en zou het super vinden als me dat uiteindelijk lukt.

Chookity-pok


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 03-05 15:30
Ik heb gister iemand bij Vodafone gemailt, alleen die is afwezig tot de 22e. Hopen dat ze willen meewerken.
Maar mocht dat geen oplossing zijn, wat zou dan de beste oplossing zijn qua snelheid. Tips zijn welkom...

Chookity-pok


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 03-05 15:30
Weinig mensen met ervaring in dit soort dingen? Met name voor Xcode kan ik qua broncode weinig terugvinden op internet. Daarom hoopte ik hier stiekem op een paar mensen die me op weg konden helpen...

In PHP gaat het me vast wel lukken, alleen is het allemaal net even wat anders in Xcode.

[ Voor 3% gewijzigd door Saeverix op 24-06-2009 14:33 ]

Chookity-pok


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 03-05 15:30
Het blijft hier wel angstvallig stil... :'(

Chookity-pok


Acties:
  • 0 Henk 'm!

  • pascalw
  • Registratie: Februari 2008
  • Laatst online: 02-05 22:34
Programmeren moet je zelf, je kunt een taal als Objective-C niet vergelijken met een taal als PHP.

Sinds de iPhone hot is als ontwikkelplatform zie ik overal mensen die denken wel even een iPhone appje in elkaar te draaien omdat ze zo goed kunnen php'en. Leer eerst de taal eens voor je je stort op een project voor het grote publiek waar je men mogelijk zelfs voor gaat laten betalen.

[ Voor 5% gewijzigd door pascalw op 26-06-2009 13:55 ]


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 03-05 15:30
Dat is ook precies wat ik aan het doen ben... Ik ben met behulp van boeken en dergelijke de taal aan het leren begrijpen.

Alleen ik vraag om een paar ideeën om de informatie van de Vodafone site te verkrijgen. Ik vraag ook niet om een volledige oplossing, maar gewoon een paar tips die bij mensen opkomen...

Daarbij komt dat ik het eerst voor mezelf doe. Om er zelf van te leren en gelijktijdig ook iets aan het tooltje te hebben. Mocht het goed gaan werken dan kan ik er aan denken om het te releasen aan het publiek.

[ Voor 25% gewijzigd door Saeverix op 29-06-2009 11:02 ]

Chookity-pok


Acties:
  • 0 Henk 'm!

  • Martkrui
  • Registratie: Februari 2002
  • Laatst online: 27-04 20:31
Om voor de iPhone te ontwikkelen (op target) moet je wel even $99 betalen voor de licentie (helaas)

En qua site scrapen: begin eens met de login en cookie handling. Als dat werkt kan je van daaruit verder werken.
Dat is met wget redelijk eenvoudig werkend te krijgen zodat je precies kan zien wat er gebeurd.

[ Voor 18% gewijzigd door Martkrui op 29-06-2009 12:08 ]

I haven't lost my mind! It's backed up on tape somewhere!


Acties:
  • 0 Henk 'm!

Anoniem: 140896

Leuk idee! Ik heb hier zelf ook over nagedacht om 2 redenen:

1. Vodafone site is langzaam
2. Omslachtig om door te moeten klikken e.d.

Daarnaast had ik nagedacht over een 2 gratis sms per dag widget te maken.

Maja... die site zit voor mijn kennis te ingewikkeld in elkaar (waarschijnlijk is daar ook een reden voor he ;) )

Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 03-05 15:30
Ik ben inmiddels ook aan het afdwalen... Het gaat me zeker weten lukken in Xcode. Je bent programmeur of je bent het niet.

Het doel van dit topic was om tips en eventueel hulp te krijgen bij het uit elkaar trekken van de My Vodafone site.
Want opzich is het inladen en parsen van de VOLLEDIGE site een optie. Alleen zal die net als de huidige oplossingen erg traag zijn omdat hij dan de hele trage site moet inladen.
Hij haalt op verschillende vage manieren zijn informatie (beltegoed, geldig tot) vanaf een andere pagina. Het zou natuurlijk ideaal zijn als ik er acher kom welke pagina dat is.
Op die manier kan ik dan de POST/GET request nabouwen en vervolgens alleen de nodige gegevens inlezen. In het geval van Prepaid: "15,00" (Hoogte beltegoed) en "12-12-2012" (Houdbaarheid beltegoed).

Maar zoals geejeej ook al zegt: Die site zit zo verschrikkelijk omslachtig en ingewikkeld in elkaar. Efficient programmeren is bij Vodafone volgens mij ver te zoeken.

Ik heb bij het starten van dit topic ook gemailt naar verschillende adressen bij Vodafone maar tot op de dag van vandaag niets van vernomen.

Iemand ervaring met het "reverse engineeren" van een website als deze?

Chookity-pok


Acties:
  • 0 Henk 'm!

  • Martkrui
  • Registratie: Februari 2002
  • Laatst online: 27-04 20:31
Ik heb inmiddels de site wat beter onder controle.

Momenteel heb ik 1 wget commando om in te loggen en 1 om de gegevens te halen. Helaas kan je niet echt alleen de relevante gegevens krijgen. Met het 2e wget commando krijg je weer bijna de complete pagina maar dan met beltegoed gegevens ingevuld.

Zal vanavond de data ff posten.

I haven't lost my mind! It's backed up on tape somewhere!


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 03-05 15:30
Met het 2e wget commando krijg je weer bijna de complete pagina maar dan met beltegoed gegevens ingevuld.
Ja klopt, daar kwam ik ook achter. Vond het ook heel vreemd.

In plaats van alleen de relevante data (beltegoed en dergelijke) via ajax op te roepen doen zij de complete pagina. Waarom zou je dan ajax gebruiken? Dan kan dan toch net zo goed met PHP lijkt mij. Ik zat ook al eens een reden te bedenken waarom ze het zo doen.

Maar misschien valt er tussen die handeling iets op te vangen met een andere request ofzo...

Chookity-pok


Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
Sturen ze de complete of bijna de complete site opnieuw? Want als ze heb helemaal opnieuw sturen, is het om mensen zonder javascript nog wel te kunnen helpen. Vaak ontdekken ze het ajax request door de juiste headers (veel js libraries zenden die). Misschien moet je met Firebug even de output bekijken van het request als je met de browser het ajax request doet. Als je daar wel enkel het beltegoed krijgt, weet je dat het daar nog wat te optimaliseren valt :)

Acties:
  • 0 Henk 'm!

Anoniem: 241942

Is het misschien een idee om een online een soort webservice op te zetten, waar de applicatie van leest. Je kan dan de requests door de server laten doen, waardoor ook wat zwaardere taken niet voor een langzame app zorgen.

Het is misschien een beetje overkill, maar het kan eventueel ook andere services hosten. Zoals vodafone, tmobile, hi, kpn enzo.

Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 03-05 15:30
mithras schreef op vrijdag 03 juli 2009 @ 11:36:
Sturen ze de complete of bijna de complete site opnieuw? Want als ze heb helemaal opnieuw sturen, is het om mensen zonder javascript nog wel te kunnen helpen. Vaak ontdekken ze het ajax request door de juiste headers (veel js libraries zenden die). Misschien moet je met Firebug even de output bekijken van het request als je met de browser het ajax request doet. Als je daar wel enkel het beltegoed krijgt, weet je dat het daar nog wat te optimaliseren valt :)
Dat weet ik niet, is idd misschien iets om uit te zoeken. Zal eens proberen hoe ver ik kom.
Anoniem: 241942 schreef op vrijdag 03 juli 2009 @ 11:36:
Is het misschien een idee om een online een soort webservice op te zetten, waar de applicatie van leest. Je kan dan de requests door de server laten doen, waardoor ook wat zwaardere taken niet voor een langzame app zorgen.

Het is misschien een beetje overkill, maar het kan eventueel ook andere services hosten. Zoals vodafone, tmobile, hi, kpn enzo.
Hier heb ik al aan zitten denken, alleen er zit een groot nadeel aan. Alle inloggegevens gaan via die webservice. En ik denk dat de meeste gebruikers daar niet op zitten wachten. Ik zou het ook niet gelijk gaan gebruiken als er bij staat dat alle inloggegevens via een externe site worden ingelezen en wellicht opgeslagen.

Chookity-pok


Acties:
  • 0 Henk 'm!

  • Martkrui
  • Registratie: Februari 2002
  • Laatst online: 27-04 20:31
stap 1: login
0612345678 = GSM nummer
hotseflots is waar het wachtwoord moet staan

wget --no-check-certificate --output-document=login.txt --post-data "username=0612345678&password=hotseflots" --save-cookies=cookies.txt --keep-session-cookies https://login.vodafone.nl/signon?provider=myvodafone

Hiermee log ik in en komt het cookie in cookies.txt te staan.

stap 2: get data

wget -d --load-cookies=cookies.txt --no-check-certificate --output-document=result.txt --post-data "_fs=es_prive_my vodafone_verbruik en prijsplan_costcontrol&_fp=info&_st=&getdata=true" "https://my.vodafone.nl/Prive/My_Vodafone"
Saeverix schreef op vrijdag 03 juli 2009 @ 11:26:
[...] Waarom zou je dan ajax gebruiken? Dan kan dan toch net zo goed met PHP lijkt mij.
Volgens mij haal je hier client en serverside door elkaar... wel of niet xmlhttp heeft weinig met wel of niet PHP gebruik te maken

[ Voor 21% gewijzigd door Martkrui op 03-07-2009 21:24 ]

I haven't lost my mind! It's backed up on tape somewhere!


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 03-05 15:30
Martkrui schreef op vrijdag 03 juli 2009 @ 21:22:
Volgens mij haal je hier client en serverside door elkaar... wel of niet xmlhttp heeft weinig met wel of niet PHP gebruik te maken
Ik zat meer met de gedachte: Als ze de complete site in plaats van alleen de relevante informatie plaatsen met behulp van AJAX dan heeft het toch weinig zin? Het enige voordeel is dat je geen browser-refresh hebt. Maar dat is een kwestie van een seconde.

Naar mijn idee is AJAX bedoelt om bepaalde elementen real time te manipuleren. Ik zou dus in dit geval een statische pagina gemaakt hebben met een paar lege elementen. Namelijk "beltegoed" en "geldigtot". Die zou ik vervolgens met behulp van een AJAX request vervangen door de werkelijke waarde die ik via bijvoorbeeld een php script oproep uit de database.

Daarom zie ik het nut van gebruik van javascript op de Vodafone site niet echt. Tenzij ik iets mis?

Ik merkte trouwens ook dat de site ook gewoon werkt als je Javascript uitgeschakeld hebt. (Behalve het inloggen, want dat formulier wordt verzonden met behulp van javascript.)

De code die je hierboven poste is voor in een Terminal? Het is in ieder geval een syntax die ik niet gelijk herken... :)
Maar inhoudelijk ziet het er wel interresant uit.

Chookity-pok


Acties:
  • 0 Henk 'm!

  • Martkrui
  • Registratie: Februari 2002
  • Laatst online: 27-04 20:31
Saeverix schreef op zaterdag 04 juli 2009 @ 14:10:
[...]
Ik zat meer met de gedachte: Als ze de complete site in plaats van alleen de relevante informatie plaatsen met behulp van AJAX dan heeft het toch weinig zin? Het enige voordeel is dat je geen browser-refresh hebt. Maar dat is een kwestie van een seconde.
Klopt helemaal. Wat ik bedoelde is dat het niet uitmaakt of je aan de serverkant PHP gebruikt.
Maar het is idd niet helmaal duidelijk waarom ze zoveel sturen ipv gewoon alleen de beltegoed data, daar heb je gelijk in.

Dit zijn wget commando's. Wget is een linux tooltje op html post/requests te doen. Met cygwin kan je het ook op windows uitvoeren. (maar las je een beetje goed leest is het gemakkelijk te begrijpen)

I haven't lost my mind! It's backed up on tape somewhere!


Acties:
  • 0 Henk 'm!

  • FragFrog
  • Registratie: September 2001
  • Laatst online: 02:24
Saeverix schreef op vrijdag 03 juli 2009 @ 13:02:
Hier heb ik al aan zitten denken, alleen er zit een groot nadeel aan. Alle inloggegevens gaan via die webservice. En ik denk dat de meeste gebruikers daar niet op zitten wachten. Ik zou het ook niet gelijk gaan gebruiken als er bij staat dat alle inloggegevens via een externe site worden ingelezen en wellicht opgeslagen.
Voor zover ik weet is dat niet anders met sites als meebo.com, op zich denk ik dat men zich er niet al te druk over gaat maken. Of je die load op je server wilt is een tweede natuurlijk.

Als je als bedrijf aanklopt sta je versteld van hoeveel gegevens je direct van partners af kan halen, zelf een tijdje bezig geweest met een webapp die beschikbaarheidsgegevens van hotelketens binnenhaalde - oorspronkelijk was het plan om hun websites te spideren, maar al vrij snel bleken ze allemaal wel bereid hun gegevens te delen middels data files of API's (uiteraard in ruil voor backlinks ;)). Bel ze eens op, you never know :)

Overigens zou je app een stuk sneller moeten zijn dan de website; immers, je hoeft in principe niet alle images, stylesheets etc te laden. Als bovendien geldt dat ze middels een AJAX request de benodigde data inladen zou je ook kunnen proberen direct dat xmlhttp request na te bootsen - dan heb je gelijk de gegevens in een handzaam formaat (plus een berg overbodige meuk, maar soit). Daarvoor zul je wel de juiste cookies moeten leveren maar door eerst een inlogrequest te doen zou je die zo op moeten kunnen slaan, wat dan nog resteert is eventuele referer checks om de tuin leiden en hopen dat die iPhone taal toestaat om xmlhttp requests te doen naar externe domeinen, maar dat zal vast wel :)

[ Site ] [ twitch ] [ jijbuis ]


Acties:
  • 0 Henk 'm!

  • monnick
  • Registratie: December 2005
  • Niet online
Ik kan je verder niet echt op weg helpen met je vragen. Maar ik kijk regelmatig op de Vodafone website om m'n resterende tegoed voor deze maand te bekijken. Na het inloggen duurt dat inladen van die gegevens (Ajax, of Flash....dunno?) sowieso altijd eeeeeeeerg lang. Misschien is dat andere iPhone appje daarom wel zo traag?

Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 03-05 15:30
monnick schreef op zondag 05 juli 2009 @ 22:23:
Ik kan je verder niet echt op weg helpen met je vragen. Maar ik kijk regelmatig op de Vodafone website om m'n resterende tegoed voor deze maand te bekijken. Na het inloggen duurt dat inladen van die gegevens (Ajax, of Flash....dunno?) sowieso altijd eeeeeeeerg lang. Misschien is dat andere iPhone appje daarom wel zo traag?
Ja klopt, daarom probeer ik een andere manier te vinden. Want dat andere iPhone appje laadt volgens mij gewoon de hele site in en parsed deze vervolgens.

We proberen hier een manier te vinden om alleen het beltegoed en dergelijke op te vragen.

Chookity-pok


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 03-05 15:30
Ik heb niet opgegeven en ben na verloop van tijd opnieuw verder gegaan met dit projectje.

Ik heb het nu op de volgende werkende manier aangepakt:
  • Inloggen door een POST aan te maken en te verzenden
  • De ontvangen cookies tijdelijk opslaan in geheugen
  • Vervolgens de pagina "Mijn tegoed en verbruik" aanvragen
  • De volledige broncode van de pagina in een NSString plaatsen
  • Met behulp van een NSScanner het beltegoedbedrag en de geldigheidsdatum eruit filteren en ieder in een aparte NSString plaatsen.
Al met al duurt dit gemiddeld 6 seconden. Dat is helaas nog redelijk traag. Tijdens het debuggen ben ik erachter gekomen dat hij tijdens het inloggen 3 maal een 302 Redirect uitvoert. Daar komt de traagheid vandaan.

Ik vermoed zelf dat hier door de opbouw van de Vodafone site niets aan te doen is. Maar ik wil dit graag zeker weten.
Ik kan namelijk bij het inloggen begrijpen dat je 1 maar een redirect uitvoert om de cookies te plaatsen en vervolgens weer terug te directen naar de hoofdpagina. Maar wat zou er tijdens die andere 2 redirects gebeuren?

Ik heb met Firebug het een en ander kunnen achterhalen. Alleen heel erg veel wijzer word ik er niet van.
Hier een screenshot van Firebug met ook dezelfde tijd van ongeveer 6 seconden.

Afbeeldingslocatie: http://emberapp.com/werner/images/firefox/sizes/m.png

[ Voor 16% gewijzigd door Saeverix op 06-03-2010 15:10 ]

Chookity-pok


Acties:
  • 0 Henk 'm!

  • Kalentum
  • Registratie: Juni 2004
  • Laatst online: 16:07
Ik heb ook even gekeken met Firebug en een beetje rondklikken in die 'my vodafone' menuutjes laat zien dat veel pagina's al snel 2s nodig hebben. De costcontrol pagina ook 4-6 s. Je kan daar eigenlijk niet zoveel aan doen: de site is gewoon traag.

Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 03-05 15:30
Ik heb ondertussen nog een aantal dingen veranderd en zit nu gemiddeld op 4-5 seconden.
Ik heb nog een aantal ideeën om de tijd nog iets te verkorten, maar ik denk dat er niet veel speling meer over is.

Ik heb ook nog even een demo filmpje van de Beltegoed app uit de App Store bekeken. En ik kwam er toen achter dat mijn manier nu al erg snel is. Het laden van de beltegoed gegevens duurt daar maar liefst 15 seconden!

Ik heb dit nu als een standaard OS X applicatie. Als alles naar wens werkt zal ik het omzetten naar een iPhone app en een beetje leuk aankleden...

Ik zit alleen dan nog met een twijfel punt. Om het gratis(met advertenties) of eventueel voor 79 cent te verkopen in de App Store moet ik 99 euro per jaar betalen. Zou er genoeg vraag naar zijn om de 99 euro weg te strepen?

Een andere manier is om de app via het jailbreak circuit te releasen.

Afbeeldingslocatie: http://emberapp.com/werner/images/vodafone-beltegoed/sizes/o.png

Chookity-pok


Acties:
  • 0 Henk 'm!

  • thaan
  • Registratie: Oktober 2004
  • Laatst online: 01-05 13:30
Wat een simplicity! Heb je eraan gedacht om er een DashBoard Widget van te maken?

Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 03-05 15:30
thaan schreef op zondag 07 maart 2010 @ 12:15:
Heb je eraan gedacht om er een DashBoard Widget van te maken?
Had ik nog niet aan gedacht, maar dat heb ik bij deze even gedaan. Volgens mij zit je bij Dashboard Widgets verbonden aan Javascript. En niet aan een C variant. En met alleen Javascript is dit "niet" of "een stuk moeilijker" haalbaar. Dus een Dashboard Widget zit er voorlopig niet in.

Iemand enig idee of het ergens mogelijk is om te zien hoe vaak een iPhone App is gedownload?
Want voor ik een iPhone Dev abonnement afsluit wil ik wel weten of er genoeg vraag is naar een sneller werkende en mooier uitziende Vodafone beltegoed app dan de huidige apps. Voor zover dat mogelijk is namelijk :)

Chookity-pok


Acties:
  • 0 Henk 'm!

  • Hercul3s
  • Registratie: Juni 2001
  • Laatst online: 17:34
Ik zie dat het een vrij oud topic is maar is er uiteindelijk nog een dashboard widget gekomen om je tegoed en verbruik te bekijken?

Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 03-05 15:30
Niet door mij. Ben intussen ook overgestapt naar Hi.
Behalve dat de site van Vodafone een drama is, was ook de klantenservice van Vodafone een drama.

Heb ditzelfde programma nu ook voor Hi gemaakt, en dat ging een stuk makkelijker. En het werkt vooral sneller.

Een Dashboard Widget zal zoals ik hierboven zei, niet of heel moeilijk mogelijk zijn. Omdat je dan alleen de beschikking hebt over Javascript.

Chookity-pok


Acties:
  • 0 Henk 'm!

  • gglanzani
  • Registratie: Januari 2011
  • Laatst online: 08-10-2024
Martkrui schreef op vrijdag 03 juli 2009 @ 21:22:
stap 1: login
0612345678 = GSM nummer
hotseflots is waar het wachtwoord moet staan

wget --no-check-certificate --output-document=login.txt --post-data "username=0612345678&password=hotseflots" --save-cookies=cookies.txt --keep-session-cookies https://login.vodafone.nl/signon?provider=myvodafone

Hiermee log ik in en komt het cookie in cookies.txt te staan.

stap 2: get data

wget -d --load-cookies=cookies.txt --no-check-certificate --output-document=result.txt --post-data "_fs=es_prive_my vodafone_verbruik en prijsplan_costcontrol&_fp=info&_st=&getdata=true" "https://my.vodafone.nl/Prive/My_Vodafone"


[...]


Volgens mij haal je hier client en serverside door elkaar... wel of niet xmlhttp heeft weinig met wel of niet PHP gebruik te maken
Heb jij een update versie van de wget "script"? Het werkt trouwens niet meer..

Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 17:05

Matis

Rubber Rocket

De site heet niet es_prive_my vodafone_verbruik en prijsplan_costcontrol meer maar https://my.vodafone.nl/my...d_en_verbruik/costcontrol
Denk ik


My bad, de POST-header lijkt niet veranderd idd:
_fs=es_my vodafone_tegoed en verbruik_costcontrol&_fp=info&_st=&getdata=true

[ Voor 28% gewijzigd door Matis op 17-04-2011 16:53 ]

If money talks then I'm a mime
If time is money then I'm out of time

Pagina: 1