MechanicalSoup 的教程向您展示了如何使用命名输入框进行操作,但并不是每个编写 html 的人都关心命名。我有一个带有单个表单的 html 页面,其中包含一个未命名的复选框(当您检查它时,会检查所有其他复选框)以及大量其他复选框,所有这些复选框都命名为“alpkey”。谁能帮我选择第一个复选框,或者找到并选择页面中的所有复选框?我需要这样做,然后点击“更多信息”按钮中的链接。html代码是这样的:
<p></p>
<form name="summform" target="_blank" action="/cgi-bin/RBG" method="post">
<input type="hidden" name="form" value="PNG/png2">
<center>
<table width="850" frame="below">
<tr><td><div>39 matches found</div>
</td></tr>
<tr><td><i>Select the records you wish to see more information on</i> <b>:</b>
<br>
</td></tr>
<tr><td><input type="checkbox" onclick="if(this.checked){checkAll(true)}else{checkAll(false)}">
<b>Select ALL/None</b>
<input type="submit" value="More Info">
Click on thumbnail to see larger image.
</td></tr>
</table>
<table width="850" frame="below">
<tr>
<td></td>
<td width="50" align="center"><b>LAE No.</b></td>
<td align="center"><b>Summary of record</b></td>
<td align="center"><b>Specimen Images</b></td>
<tr>
<td><input type="checkbox" name="alpkey" value="83237" /></td>
<td width="50" align="center"></td>
<td align="left">
<b><font color="#FFCC33">
....等等。还是我需要硒?
更新:代码下面的代码有效(或似乎 - browser.launch_browser() 除非我使用 StatefulBrowser,否则我无法直观地检查结果)......但我无法进一步了解。我不知道如何点击“提交”按钮链接。
browser = mechanicalsoup.Browser()
page = browser.get(myurl)
soup = page.soup
form = soup.select("form")[0]
for i in range(3, len(form.select("input"))):
form.select("input")[i].checked = 'checked'
# print(form.select("input")[i].checked)
submit = soup.findAll(type='submit')
#form2 = soup.select_form()
#form2.choose_submit('More Info')
#page2 = browser.submit(form, page.url)
....或者,当我使用 browser =mechanicalsoup.StatefulBrowser() 时,我似乎无法遍历复选框。