Как удалить веб-страницу ASPX, требующую аутентификации
Используя библиотеку Python 'Requests', я пытаюсь очистить веб-сайт ASPX (https://cei.bmfbovespa.com.br/CEI_Responsivo/home.aspx), который требует входа в систему в первую очередь (https://cei.bmfbovespa.com.br/CEI_Responsivo/login.aspx).
Вот шаги, которые я пытаюсь сделать:
Создайте сеанс с «запросами» для обработки файлов cookie (верно?)Обновите заголовок всей информацией, которую я получил из «Заголовка запроса» с помощью Chrome Developing Tool (кроме информации о cookie из-за сеанса)Сделайте GET на странице входа, чтобы получить входные значения для POSTСООБЩЕНИЕКогда я делаю это вручную с помощью Chrome, после успешного входа в систему я получаю ответ «302», и меня перенаправляют на домашнюю страницу. Но с помощью python после POST я получил ответ «200», и я все еще на странице входа.
import requests
from bs4 import BeautifulSoup
from requests.packages.urllib3 import add_stderr_logger
add_stderr_logger()
s = requests.Session()
url_login = 'https://cei.bmfbovespa.com.br/CEI_Responsivo/login.aspx'
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36',
'Upgrade-Insecure-Requests':'1',
'Host':'cei.bmfbovespa.com.br',
'Connection':'keep-alive',
'Accept-Language':'pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4',
'Accept-Encoding':'gzip, deflate, sdch',
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
}
s.headers.update(headers)
r = s.get(url_login, verify=False)
soup = BeautifulSoup(r.content)
viewstate = soup.find(id="__VIEWSTATE")['value']
viewgen = soup.find(id="__VIEWSTATEGENERATOR")['value']
eventvalid = soup.find(id="__EVENTVALIDATION")['value']
login_data = {
'__VIEWSTATE' : viewstate,
'__VIEWSTATEGENERATOR' : viewgen,
'__EVENTVALIDATION' : eventvalid,
'ctl00$ContentPlaceHolder1$txtLogin' : '*',
'ctl00$ContentPlaceHolder1$txtSenha' : '*',
'tl00$ContentPlaceHolder1$btnLogar': 'Entrar'
}
resp = s.post(url_login, data=login_data, verify=False)
Если я все еще пытаюсь сделать GET с Сессией, я перенаправлен на страницу входа в систему:
url_carteira = 'https://cei.bmfbovespa.com.br/CEI_Responsivo/home.aspx'
response = s.get(url_carteira, verify=False)
И вот результат, который я получаю:
2016-02-11 22:07:07,476 INFO Starting new HTTPS connection (1): cei.bmfbovespa.com.br
2016-02-11 22:07:07,823 DEBUG "GET /CEI_Responsivo/login.aspx HTTP/1.1" 200 4522
2016-02-11 22:07:07,898 DEBUG "POST /CEI_Responsivo/login.aspx HTTP/1.1" 200 4534
C:\Users\luciano\AppData\Local\Programs\Python\Python35\lib\site-packages\requests\packages\urllib3\connectionpool.py:791: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html
InsecureRequestWarning)
2016-02-11 22:07:10,470 DEBUG "GET /CEI_Responsivo/home.aspx HTTP/1.1" 302 147
2016-02-11 22:07:10,510 DEBUG "GET /CEI_Responsivo/login.aspx HTTP/1.1" 200 4522
Я использую Python 3.5.1
Есть идеи, почему я не могу войти в систему и получить доступ к домашней странице?