擅长:python、mysql、java
<p><code>requests</code>与Mechanize不同。在</p>
<p>Mechanize加载实际的HTML表单并对其进行解析,允许您为表单中的各个元素填充值。然后,当您要求Mechanize提交表单时,它将使用表单中的<em>所有</em>信息来向服务器生成一个有效的请求。这包括没有为其提供新值的任何表单元素,如果存在,则使用默认值。这包括浏览器中不可见的任何隐藏表单元素。在</p>
<p>使用类似<a href="http://robobrowser.readthedocs.org/en/latest/" rel="noreferrer">robobrowser</a>的项目;它包装<code>requests</code>和{a2}来加载网页、解析表单元素、帮助您填写这些元素并再次提交它们。在</p>
<p>如果您想使用<em>仅</em>请求,则需要确保您发布了表单定义的所有字段。这意味着您需要查看<code>method</code>属性(默认为<code>GET</code>)、<code>action</code>属性(默认为当前URL),以及所有<code>input</code>、<code>select</code>、<code>textarea</code>和{<cd9>}元素。服务器也可能希望在HTTP请求中包含附加信息,例如cookies或Referer</em>(sic)报头。在</p>
<p>例如,您打印的Mechanize信息表明它已经从表单中解析了多个字段,而您没有为这些字段提供值。所讨论的表单还包含一个隐藏的输入字段,例如<code>form_build_id</code>,服务器可能依赖它。Mechanize还将捕获与原始表单请求一起发送的任何cookie,服务器也可能需要这些cookie来接受请求。robobrowser会考虑相同的上下文。在</p>