讓我首先爲我的新鮮事道歉。幾年前,一位朋友問我是否可以編寫一個程序來自動獲取替代教學開口。這並不是我所知道的一個領域,但是一對夫婦的教程讓我不顧一切地理解html(而不僅僅是關於Python)。自那時以來,腳本工作得很好,但今年他們的網站似乎已經重做並破壞了一些東西,這遠遠超出了我的理解。以前的表單字段不再被機械化的python腳本發現
我以前的代碼工作:
# Create a Browser instance
b = mechanize.Browser()
# Load the page
b.open(loginURL)
# Select the form
b.select_form(nr=0)
# Fill out the form
b['id'] = 'XXXXXXXXXX' # Note: I edited out my friend's login info here for privacy
b['pin'] = 'XXXX'
b.submit();
仍只有一種形式,但現在控件的類型是「隱藏」,並且不我直接需要的不再的人。當我用開發人員模式檢查它時,我可以看到html中的舊字段,並且名稱相同,但我無法弄清楚(嘗試了一些不起作用的東西),現在我將如何訪問它們。下面是HTML:
<form id="loginform" name="loginform" method="post" action="https://www.aesoponline.com/login.asp?x=x&&pswd=&sso=">
<input type="hidden" name="location" value="">
<input type="hidden" name="qstring" value="">
<input type="hidden" name="absr_ID" value="">
<input type="hidden" name="foil" value="">
<div style="margin: auto; text-align:center;">
<div id="loginContainer" style="text-align: left;">
<div id="loginContent">
<div id="Div1" style="position:relative; left:65px;" class="hide-me-for-rebranding">
<a href="http://www.frontlinetechnologies.com">
<img src="images/frontlinelogo.png" border="0">
</a>
</div>
<div id="loginLoginBox" style="position:relative;">
<div id="loginAesopLogo" style="padding-bottom:0px;" class="hide-me-for-rebranding"></div>
<!--endloginAesopLogo-->
<div id="loginLoginFields" style="margin-top:0px;">
<br>
<table>
<tbody>
<tr height="25px">
<td width="30px"><span class="corrLoginFormText">ID:</span>
</td>
<td>
<input type="text" class="loginFormText" maxlength="80" id="txtLoginID" name="id" value="">
</td>
</tr>
<tr height="25px">
<td width="30px"><span class="corrLoginFormText">Pin:</span>
</td>
<td>
<input type="password" class="loginFormText" maxlength="20" id="txtPassword" name="pin">
</td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr height="30px">
<td width="75px" valign="top">
<a class="textButton" id="loginLink" name="loginLink" href="#"><span style="white-space:nowrap;">Login</span></a>
<input type="hidden" id="submitLogin" name="submitLogin" value="1">
</td>
<td>
<div id="loginhelp" style="float:right;">
<img src="images/icon.pinreminder.png" alt="pin" width="10" height="15" align="top"><a href="forgot_pin.asp">Pin Reminder</a>
<br>
<img src="images/icon.loginproblems.png" alt="login" width="11" height="17" align="top"> <a href="http://help.frontlinek12.com/Employee/Docs/ClientServicesHelpGuide-LoginProblems.pdf">Login Problems</a>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!--endloginLoginFields-->
<div id="errorLabel" style="position: absolute; top: 170px; left:5px;margin:0px;"><span class="assistanceText"></span>
</div>
</div>
<!--endloginLoginBox-->
<div id="loginContentText">
<span class="loginContentHeader">Welcome To Absence Management</span>
<br>
<span class="loginContentText">
\t \t \t \t You are about to enter Frontline Absence Management!<br> Please enter your ID and PIN to login to your account, or click the button below to learn more about Frontline's growing impact on education.</span>
<br>
<a class="textButton" href="http://www.frontlinek12.com/Products/Aesop.html"><span>Learn More</span></a>
</div>
<!--endloginContentText-->
</div>
<!--endLoginContent-->
<div id="loginFooterShading" class="hide-me-for-rebranding">
<div id="loginFooterLeft"></div>
<div id="loginFooterRight"></div>
</div>
<!--endloginFooterShading-->
<div id="loginFooter" style="text-align:center;width:725px;">
<a href="http://www.frontlinetechnologies.com/Privacy_Policy.html" style="color: rgb(153, 0, 0) ; font-size:9px;" target="_blank">Privacy Policy</a>
<br>© Frontline Technologies Group LLC <
<parm1>>
<br>All rights reserved. Protected under US Patents 6,334,133, 6,675,151, 7,430,519, 7,945,468 and 8,140,366 with additional patents pending.
</parm1>
</div>
<!--endloginReflections-->
</div>
<!--endLoginContainer-->
</div>
<!--end margin div -->
<!-- MODAL DIALOG -->
<div id="basicModalContent" style="display:none">
<span class="assistanceText"></span>
</div>
</form>
任何援助將不勝感激。非常感謝你。
這是我之前嘗試過的東西之一,但不幸的是它沒有幫助(只是再次嘗試以確保它,並給我一個錯誤: ControlNotFoundError:沒有控件匹配名稱'id')。 頁面似乎只有一種形式(使用我發現打印所有表格的一些代碼)。 非常感謝您的建議。 –