在机械化中提交表格

Par*_*ker 7 python forms mechanize

我在提交表单提交结果时遇到问题(我可以提交表单,但我不能在第一页之后的页面上提交表单).

我有:

browser = mechanize.Browser()
browser.set_handle_robots(False)
browser.open('https://www.example.com/login')
browser.select_form(nr=0)

browser.form['j_username'] = 'username'
browser.form['j_password'] = 'password'
req = browser.submit()
Run Code Online (Sandbox Code Playgroud)

这有效,因为print req结果

`

<body onload="document.forms[0].submit()">
    <noscript>
        <p>
            <strong>Note:</strong> Since your browser does not support JavaScript,
            you must press the Continue button once to proceed.
        </p>
    </noscript>

    <form action="https://www.example.com/Shibboleth.sso/SAML2/POST" method="post">
        <div>
            <input type="hidden" name="RelayState" value="cookie:95ca495c"/>                

            <input type="hidden" name="SAMLResponse" value="really long encoded value"/>                
        </div>
        <noscript>
            <div>
                <input type="submit" value="Continue"/>
            </div>
        </noscript>
    </form>

</body>
Run Code Online (Sandbox Code Playgroud)

`

但是当我尝试使用时,我会收到错误 req.select_form(nr=0)

我认为这可能来自于机械化如何从中返回物体的方式,submit()以及我正在以错误的方式进行此操作.

任何输入或指导将不胜感激:)

myk*_*hal 8

再试一次,browser.select_form(nr=0)而不是req.select_form(nr=0).(在提交或单击链接后,新响应被视为实际的浏览器页面 - 就像在浏览器中:))