Предисловие: я понимаю, что есть много ответов на подобные вопросы, например, о переполнении стека. Однако я не нашел ничего, касающегося входа в систему aspx, ни точного случая, подобного этому.
Проблема: мне нужно определить, какая информация необходима для входа в https://cableone.net/login.aspx, чтобы извлечь оттуда информацию.
Прогресс: до сих пор я нашел поля ввода в источнике login.aspx и скомпилировал скрипт на python с urllib, urllib2 и cookielib. Я игнорировал все, что имело пустое значение в моем скрипте.
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"value="/wEPDwUIMzc1NzEwOTZkZFAEfkjXC+VNsqYoayGxa5/q4srT" />
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBAK6lKDUCwLVx7ufCQL/+N3OBwLFgNGYD6KeUd6uNDBwc5zcR0u4hqrwv1fM" />
<input name="ctl00$plhMain$txtUserName" type="text" id="ctl00_plhMain_txtUserName" />
<input name="ctl00$plhMain$txtPassword" type="password" id="ctl00_plhMain_txtPassword" />
<input type="submit" name="ctl00$plhMain$btnLogin" value="Login" id="ctl00_plhMain_btnLogin" />
Затем я использовал указанные выше входные значения с python и urllib следующим образом.
import urllib, urllib2, cookielib
from cookielib import CookieJar
url = 'https://myaccount.cableone.net/Login.aspx'
cj = CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
cookies = cookielib.CookieJar()
#determine what I need to change with these values
formValues = {
"__VIEWSTATE":"/wEPDwUIMzc1NzEwOTZkZFAEfkjXC+VNsqYoayGxa5/q4srT",
"__EVENTVALIDATION":"/wEWBAK6lKDUCwLVx7ufCQL/+N3OBwLFgNGYD6KeUd6uNDBwc5zcR0u4hqrwv1fM",
"ctl00$plhMain$txtUserName":"myAccount",
"ctl00$plhMain$txtPassword":"myPassword"
}
data = urllib.urlencode(formValues)
response = opener.open("https://myaccount.cableone.net/Login.aspx",data)
thePage = response.read()
httpheaders = response.info()
print thePage
requests
. - person gatto   schedule 08.04.2013lxml
), чтобы получить значения, потому что они, скорее всего, динамические, поэтому жестко запрограммированные значения не подходят. И я бы сохранил все, даже пустые скрытые входы, на всякий случай. Итак, процессload page - parse and get the form - post form data with cookies and headers
. - person gatto   schedule 08.04.2013