66 lines
1.4 KiB
Python
66 lines
1.4 KiB
Python
import typer
|
|
import requests
|
|
|
|
app = typer.Typer()
|
|
|
|
from bs4 import BeautifulSoup
|
|
|
|
# client.py
|
|
LOGIN_URL = "https://www.penracourses.org.uk/accounts/login"
|
|
# ADD_URL = 'http://localhost/add'
|
|
|
|
|
|
@app.command()
|
|
def login(user: str, password: str):
|
|
rqst = requests.session()
|
|
rsp = rqst.get(LOGIN_URL)
|
|
|
|
token = BeautifulSoup(rsp.content, "html.parser").find("input").attrs["value"]#, attr={"name": "csrfmiddlewaretoken"}).attrs("value")
|
|
|
|
#token = rsp.cookies["csrftoken"]
|
|
#header = {"X-CSRFToken": token}
|
|
#cookies = {"csrftoken": token}
|
|
|
|
data = {
|
|
"username": user,
|
|
"password": password,
|
|
"csrfmiddlewaretoken": token,
|
|
"next": "/",
|
|
}
|
|
|
|
print(data)
|
|
rqst.headers["Referer"] = LOGIN_URL
|
|
|
|
rsp = rqst.post(
|
|
LOGIN_URL,
|
|
data=data,
|
|
#headers=header,
|
|
#cookies=cookies
|
|
)
|
|
|
|
soup = BeautifulSoup(rsp.content, "html.parser")
|
|
print(token)
|
|
print(rqst.headers)
|
|
print(rqst.cookies)
|
|
|
|
login_success = False
|
|
if soup.find("button") and soup.find("button").find(string="Login"):
|
|
print("login fail")
|
|
pass
|
|
else:
|
|
print("login success")
|
|
login_success = True
|
|
#print(rqst.headers)
|
|
#print(rsp.content)
|
|
|
|
#new = rqst.get(
|
|
# "https://www.penracourses.org.uk/api/atlas/get_cases_user"
|
|
#)
|
|
|
|
#print(new)
|
|
#print(new.content)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
app()
|