我搜索了所有mechanicalsoup 和beautifulsoup 文档,但不知道如何使用'id' 设置表单元素的值(因为它没有名称)。
import mechanicalsoup
browser = mechanicalsoup.StatefulBrowser()
browser.open(my_url)
form = browser.select_form('form[id="login-form"]')
browser.get_current_form().print_summary()
userid = browser.get_current_page().find('input', id='text-userid')
form.set("text-userid", "user")
这让我 -
<input class="login-text-box" id="text-userid" placeholder="Email" type="text" value=""/>
<input class="login-text-box" id="text-password" placeholder="Password" type="password" value=""/>
<input id="button-login" type="submit" value="Sign In"/>
<input id="remember-me-checkbox" name="rememberme" type="checkbox" value="rememberme"/>
LinkNotFoundError: No valid element named text-userid
我尝试通过 id、CSS 选择器和其他组合来引用元素,但得到了同样的错误。我可以通过以下方式获取实际标签(我发现它可以解决类似的提交按钮问题):
userid = browser.get_current_page().find('input', id='text-userid')
但 form.set() 不直接接受标签。
谢谢你的帮助!