2017-06-24 30 views
1

嘗試使用Robobrowser自動登錄到asp網站。沒有來自robobrowser的錯誤,但它只返回登錄網站,而不是成功網站。使用Robobrowser python庫登錄到ASPX

</td><td class='LoginFormData' width='10px'><input class='LoginFormData' type='text' name='L1' id='L1' size='8' value='' onfocus='javascript:SetOrigInput("L1");' onkeydown='javascript:SubmitForm("2|1300,5|2,27|1,44|1,64|1,68|1,", "", event);' onkeyup='javascript:VerifyTextInput("L1", ",1,", "", 50, 0);'> 
</td></tr><tr><td class='LoginFormDetail'>Password</td><td class='LoginFormData' width='10px'><input class='LoginFormData' type='password' name='P1' id='P1' size='8' value='' onfocus='javascript:SetOrigInput("P1");' onkeydown='javascript:SubmitForm("2|1300,5|2,27|1,44|1,64|1,68|1,", "", event);' onkeyup='javascript:VerifyTextInput("P1", ",1,", "", 50, 0);'> 
</td></tr><tr><td class='LoginButtons' colspan='2'><input type='button' class=LoginFormButton name='login' id='login' value='Login' onclick='javascript:CheckLogin("2|1300,5|2,27|1,44|1,64|1,68|1,", "080402", "User name or password is missing", "Wrong CAPTCHA");'> 

腳本:

from robobrowser import RoboBrowser 

url = 'https://url.org' 
login_url = url + '/Login.aspx' 

username = "name" 
password = "pass" 

browser = RoboBrowser(history=True) 
browser.open(login_url) 

signin = browser.get_form(id='frm') 
signin["L1"].value = username 
signin["P1"].value = password 
signin["login"].value = "Login" 
browser.submit_form(signin) 
print browser.url 
print browser.parsed 

回答

1

我得到這個工作用硒代替:

from pyvirtualdisplay import Display 
from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
display = Display(visible=0, size=(1024, 768)) 
display.start() 
driver = webdriver.Firefox() 
driver.get("https://aspxsite.org/") 
username = driver.find_element_by_name("L1") 
username.clear() 
username.send_keys("$username") 
password = driver.find_element_by_name("P1") 
password.clear() 
password.send_keys("$password") 
driver.find_element_by_id("login").click() 
driver.get("https://aspxsite.org/XOOverview.aspx") 
driver.save_screenshot('screenie.png') 
driver.close() 
display.stop()