1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
|
#!/usr/bin/env python
import urllib
import urllib2
from bs4 import BeautifulSoup
import requests
import time
import sys
import urllib
import urllib2
import cookielib
my_user = 'xxxx'
my_pass = 'xxxx'
login_url = 'https://stuart.staffomaticapp.com/login'
shedule_url = 'https://stuart.staffomaticapp.com/locations/16381/schedules/256986?view=list&scale=week&filter=shorthanded'
#cj = cookielib.CookieJar()
#opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
login_data = {
'action': 'login-form',
'user_email': 'my_user',
'user_password': 'my_pass'
}
headers = {
'User-Agent': 'Mozilla/5.0 (X11; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0'
}
# j ai essaye avec plusieur login_data avec ou sans 'action' ... et sans cookie, ... je le fais mal vu que j ai rien capte)
# je me suis embrouille entre les differentes methode de urllib(2) entre
# sessionns opener et request... c ca qui ma mis dans le mal ... je
# reprend a zero que avec requests
with requests.session() as c:
# recuperation des info de la page de login ( ca permettra de tester si la page est accessible mais la c plutot pour decomposer au maximum)
login_page = c.get('https://stuart.staffomaticapp.com/login')
print login_page.headers
time.sleep(1)
print login_page.status_code
time.sleep(1)
print login_page.text
# ya d autre chose a recup fix ?
time.sleep(1)
# envoie du formulaire
login_formulaire = c.post(login_url, login_data, headers)
print login_formulaire.headers
time.sleep(1)
print ""
print login_formulaire.request.headers
time.sleep(1)
print login_formulaire.status_code
# j ai un 404 je me dit que c a cause de urlencode mais ca fais pareil
# (cf j ai essaye 2 variable login_data)
time.sleep(1)
# le revoila mon canot POST que puis je mettre pour avoir la raison de ce
# refus !!! IMPORTANT !!!
print login_formulaire.text
# quel methode permet de connaitre les entrees du formulaire ?? ... moi j
# ai regarde dans l inspecteur
time.sleep(1)
print login_formulaire.content
# arrive a ce niveau la que devrais me renvoyer le serveur a la place de
# canot POST ?
time.sleep(1)
# qqchose comme successfull ou bien m affiche la meme chose que firefox. c
# a dire la page d acceuil de mon compte
# recuperation des info de la page protegee par login
shedule_page = c.get(shedule_url)
# c la ou j ai pas tout capte... vu que je suis deja authentifier, dois je remettre les data et headers, vu qu il concerne la page login ,
# ici devrait plutot se trouver les info type ?view=xxx&location=xxx ...
# etc ... mais bon faudrais deja que ca marche au dessus
print shedule_page.headers
time.sleep(1)
print shedule_page.status_code
time.sleep(1)
print shedule_page.content
# la j ai l impression qu il me rnvoie le meme DOM qu avec la page de login ? non ..
# par contre le code 200 c surement parceque je suis dja authentifier sur le serveur depuis firefox
# mais alors si je suis deja autentifier et q uil me rnvoie un 2OO pourquoi je n ai pas le meme code source que dans l inspecteur
# lorsque je suis sur la page shedule.... ca me rend perplexe
# bon je m arrete la y a d autre partie du code a cote mais tant que ca
# tourne pas... ya pas d interet
# tu vois d autres appel de fonction a lancer pour etre plus verbeux ...
# je trouve pas la methode pour afficher le payload que j envoie. (avec urllib.get.data je l avais)
# dis moi sinon si ma logique d approche avec get et post est bonne ?
# hormis le fait que je n ai aucun traitement des erreur, ni imbriquer tt
# ca dans des boucles. |
Partager