Skip to content

Instantly share code, notes, and snippets.

@naasfu
Created December 17, 2016 07:40
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save naasfu/f09465d764f6f577bd730ac3b5bd0d3c to your computer and use it in GitHub Desktop.
Save naasfu/f09465d764f6f577bd730ac3b5bd0d3c to your computer and use it in GitHub Desktop.
Example Adidas UK Login
#!/usr/bin/env python
import requests
import re
import BeautifulSoup
email="destroyer@nike.com"
password="Destroyer3"
session=requests.Session()
session.cookies.clear()
headers={
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36'
}
url="https://cp.adidas.co.uk/web/eCom/en_GB/loadsignin?target=account"
response=session.get(url,headers=headers)
soup=BeautifulSoup.BeautifulSoup(response.text)
_signinSubmit=soup.find('button',{'name':'signinSubmit'}).get('value')
_IdpAdapterId=soup.find('input',{'name':'IdpAdapterId'}).get('value')
_SpSessionAuthnAdapterId=soup.find('input',{'name':'SpSessionAuthnAdapterId'}).get('value')
_PartnerSpId=soup.find('input',{'name':'PartnerSpId'}).get('value')
_validator_id=soup.find('input',{'name':'validator_id'}).get('value')
_TargetResource=soup.find('input',{'name':'TargetResource'}).get('value')
_InErrorResource=soup.find('input',{'name':'InErrorResource'}).get('value')
_loginUrl=soup.find('input',{'name':'loginUrl'}).get('value')
_cd=soup.find('input',{'name':'cd'}).get('value')
_app=soup.find('input',{'name':'app'}).get('value')
_locale=soup.find('input',{'name':'locale'}).get('value')
_domain=soup.find('input',{'name':'domain'}).get('value')
_email=soup.find('input',{'name':'email'}).get('value')
_pfRedirectBaseURL_test=soup.find('input',{'name':'pfRedirectBaseURL_test'}).get('value')
_pfStartSSOURL_test=soup.find('input',{'name':'pfStartSSOURL_test'}).get('value')
_resumeURL_test=soup.find('input',{'name':'resumeURL_test'}).get('value')
_FromFinishRegistraion=soup.find('input',{'name':'FromFinishRegistraion'}).get('value')
_CSRFToken=soup.find('input',{'name':'CSRFToken'}).get('value')
data={
"username":email,
"password":password,
"signinSubmit":_signinSubmit,
"IdpAdapterId":_IdpAdapterId,
"SpSessionAuthnAdapterId":_SpSessionAuthnAdapterId,
"PartnerSpId":_PartnerSpId,
"validator_id":_validator_id,
"TargetResource":_TargetResource,
"InErrorResource":_InErrorResource,
"loginUrl":_loginUrl,
"cd":_cd,
"app":_app,
"locale":_locale,
"domain":_domain,
"email":_email,
"pfRedirectBaseURL_test":_pfRedirectBaseURL_test,
"pfStartSSOURL_test":_pfStartSSOURL_test,
"resumeURL_test":_resumeURL_test,
"FromFinishRegistraion":_FromFinishRegistraion,
"CSRFToken":_CSRFToken
}
url="https://cp.adidas.co.uk/idp/startSSO.ping"
response=session.post(url,headers=headers,data=data)
#Parse resume URL
p = re.compile("resURL = '([a-zA-Z0-9://.]+)'")
result=re.findall(p,response.text)
resumeURL=result[-1]
#Resume login
response=session.get(resumeURL,headers=headers)
soup=BeautifulSoup.BeautifulSoup(response.text)
_action=soup.find('form').get('action')
_SAMLResponse=soup.find('input',{'name':'SAMLResponse'}).get('value')
_RelayState=soup.find('input',{'name':'RelayState'}).get('value')
data={
"SAMLResponse":_SAMLResponse,
"RelayState":_RelayState
}
#Resume login
url="https://cp.adidas.co.uk"+_action
response=session.post(url,headers=headers,data=data)
soup=BeautifulSoup.BeautifulSoup(response.text)
_action=soup.find('form').get('action')
_TargetResource=soup.find('input',{'name':'TargetResource'}).get('value')
_REF=soup.find('input',{'name':'REF'}).get('value')
data={
"TargetResource":_TargetResource,
"REF":_REF
}
#Resume login
url=_action
response=session.post(url,headers=headers,data=data)
#Resume login
url="https://www.adidas.co.uk/on/demandware.store/Sites-adidas-GB-Site/en_GB/MyAccount-Show"
response=session.get(url,headers=headers)
soup=BeautifulSoup.BeautifulSoup(response.text)
_accountInfo=soup.find('div',{'class':'accountwelcome'})
print _accountInfo.find('h1').text
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment