ASPX запрашивает эмуляцию входа в браузер
Я пытаюсь сделать пост на веб-странице aspx. Я успешно выполнил вход в систему и безуспешно пытаюсь получить содержимое страницы.
После входа в систему страница переходит к redirect
tmp.aspx, тогда он показывает вам главную страницу.
Мой код в настоящее время входит в систему и отображает tmp.aspx. Я хочу, чтобы мой скрипт отображал реальную страницу.
Таким образом, текущий поток входа в систему-> TMP (дисплей) Поток я хочу войти в систему-> TMP-> по умолчанию (отображение)
import lxml.html
import requests
starturl = 'http://*/login.aspx'
s = requests.session() # create a session object
r1 = s.get(starturl) #get page 1
html = r1.text
root = lxml.html.fromstring(html)
#pick up the javascript values
EVENTVALIDATION = root.xpath('//input[@name="__EVENTVALIDATION"]')[0].attrib['value']
#find the __EVENTVALIDATION value
VIEWSTATE = root.xpath('//input[@name="__VIEWSTATE"]')[0].attrib['value']
#find the __VIEWSTATE value
# build a dictionary to post to the site with the values we have collected. The __EVENTARGUMENT can be changed to fetch another result page (3,4,5 etc.)
payload = {'__EVENTTARGET':'TransactBtn','__EVENTARGUMENT':'','__EVENTVALIDATION':EVENTVALIDATION,'__VIEWSTATE':VIEWSTATE,'AccountID':'557','UserName':'*','Password':'*'}
# post it
r2 = s.post(starturl, data=payload)
# our response is now page 2
print r2.text
Пожалуйста посоветуй? Спасибо
Исходный код tmp.aspx. (это то, что отображается при выполнении моего скрипта)
<body>
<form name="form1" method="post" action="tmp.aspx" id="form1">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE2MTY2ODcyMjlkZCOgyU+AdP30f85W4DdUIV6LnCqa" />
<script type="text/javascript">
top.location.href = document.location.href;
document.forms["form1"].submit();
</script>
</form>
</body>