[Python] Script om in te loggen

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • mrtnptrs
  • Registratie: Januari 2011
  • Laatst online: 01-05 18:15

mrtnptrs

You idiot!

Topicstarter
Voor informatica wil ik op school een Python script maken die d.m.v. het rooster van onze school (op Cupweb) precies kan uitrekenen hoe laat je uit bent. Het leuke zou dan zijn dat je ook via dit script zou kunnen inloggen op Cupweb om zo uiteindelijk de tabel met je rooster aan te kunnen en deze dus in het Python script te gebruiken d.m.v. regulair expressions. Maar hoe laat ik een python script inloggen op deze site?

Denk eraan dat je eerst je naam (bijv. Peters Maarten) in moet voeren en op enter moet drukken en daarna op de volgende pagina OOK een 4-cijferige code moet invullen. Ik heb al gezocht op internet, maar er zijn veel onduidelijke tutorials en eerlijk gezegd zie ik door de bomen het bos niet meer. Zou iemand me duidelijk en uitgebreid willen uitleggen hoe dit moet? Hier kun je de inlogpagina van Cupweb van onze school vinden: http://www.ed.cupweb6.nl/

Alvast bedankt iedereen!

Are you comparing me to God? I mean, it’s great, but so you know, I’ve never made a tree.


Acties:
  • 0 Henk 'm!

  • Solopher
  • Registratie: December 2002
  • Laatst online: 01-06 01:49
Heb even snel op die site gekeken, maar je moet eerst de eerste pagina ophalen om de waardes uit de hidden inputs te halen, dan het "_nameTextBox" zetten met je eigen naam.

Daarna doe je een post naar de action van de form die je tegenkomt (op de eerste pagina LogInWebForm.aspx), vervolgens moet je de response gaan lezen, uit de selectbox de juiste waarde kiezen en en je pincode zetten.
Na deze request maak je gebruik van een cookiejar, deze "onthoud" je sessie. https://docs.python.org/2/library/cookielib.html.

In ieder geval, zo zou ik er mee bezig gaan ;-).

Overigens weet ik niet of je toestemming hebt om geautomatiseerd in te loggen, om vervolgens de data die "privé" is te scrapen.

Acties:
  • 0 Henk 'm!

  • windwarrior
  • Registratie: Januari 2009
  • Laatst online: 12-07-2024

windwarrior

ʍıupʍɐɹɹıoɹ

Je zou eens met Postman (chrome extentie) kunnen proberen handmatig het formulier op die website te vullen en dan de HTML te parsen.

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 19-05 13:58

drm

f0pc0dert

Je zou je allereerst een beetje moeten verdiepen in hoe HTTP werkt. Alles is stateless, dus een client verstuurt een bericht naar de server, de server geeft antwoord, that's it. Om een "sessie" te krijgen, wordt vrijwel altijd gewerkt met Cookies. Er is op een zeker moment een Set-Cookie header in het antwoord van de server, waarmee de server tegen de client zegt: "stuur voortaan een Cookie header mee in je requests, zodat ik weet wie je bent". In die cookie zit dan meestal een of ander sessie id die jou uniek identificeert. Dat is protocol: een afspraak waar beide partijen zich aan houden.

Het implementeren van een HTTP client die dat volgt is in Python heel simpel, je kunt daar gewoon standaard libraries voor gebruiken. Het enige is dat je een goed besef moet hebben van wat het verschil is tussen verschillende request methods en wat cookies zijn (en doen). Als je dat door hebt, is het bouwen ervan een eitje.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

  • sam.vimes
  • Registratie: Januari 2007
  • Laatst online: 04-10-2024
Programmatisch browsen van een website: http://wwwsearch.sourceforge.net/mechanize/