Вы должны удалить javax.faces.ViewState
со страницы входа в систему и добавить его в свою полезную нагрузку. Добавьте заголовки в свой сеанс.
import requests
import bs4 as bs
# Create session.
session = requests.Session()
headers = {
'Host': 'fms.flexepos.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'en-US,en;q=0.5',
'Accept-Encoding': 'gzip, deflate, br',
'Content-Type': 'application/x-www-form-urlencoded',
'Origin': 'https://fms.flexepos.com',
'Referer': 'https://fms.flexepos.com/FlexeposWeb/login.seam',
}
# Add headers in session.
session.headers.update(headers)
# Login page request.
login_page_url = 'https://fms.flexepos.com/FlexeposWeb/login.seam'
response = session.get(login_page_url)
soup = bs.BeautifulSoup(response.text, 'lxml')
# Extract javax.faces.ViewState, login:j_id28, login from login page.
token = soup.find('input', {'id': 'javax.faces.ViewState'}).get('value')
j_id28 = soup.find('input', {'name': 'login:j_id28'}).get('value')
login = soup.find('input', {'name': 'login'}).get('value')
jsessionid = response.cookies.get('JSESSIONID')
# Add javax.faces.ViewState, login:j_id28, login in payload.
payload = {
'login': login,
'login:username': 'YOUR USERNAME',
'login:password': 'YOUR PASSWORD',
'login:j_id28': j_id28,
'javax.faces.ViewState': token
}
# Request for login.
login_url = 'https://fms.flexepos.com/FlexeposWeb/login.seam;jsessionid={0}'.format(jsessionid)
login_response = session.post(login_url, data=payload, headers=headers)
response = session.get('the website I want to get the data from')
print(response.text)