擅长:python、mysql、java
<p><strong>总结-TL/DR</strong></p>
<p>取消选中一个框-<strong>将其排除在有效负载中</strong></p>
<pre><code>payload = {'u': 'http://www.google.com'}
r = requests.post('http://www.website.com/', data=payload)
</code></pre>
<p>选中一个复选框-<strong>将其包含在有效负载中</p>
^{pr2}$
<p><strong>说明</strong></p>
<p>我们需要区分html标记(在您的示例中默认设置了复选框)和服务器端行为,后者是完全正交的。显然,您想要做的是在提交带有未选中复选框的表单时模仿浏览器的行为。
在这种情况下,服务器不会接收任何<em>参数,只要从请求中忽略它。在</p>
<p>另请参见<a href="http://www.w3.org/TR/REC-html40/interact/forms.html#checkbox" rel="nofollow noreferrer">HTML Spec</a></p>
^{bq}$
<p><strong>更新</strong></p>
<p>在调查了TamperData插件的具体情况后,我发现这可能与速度限制如何处理cookie有关,所以这不是请求库的错误,只是站点的一个特性。此代码似乎有效:</p>
<pre><code>s = requests.session()
s.get('http://speed-limit.info/index.php') # getting the cookies
response = s.post('http://speed-limit.info/includes/process.php?action=update',
data={'u': 'stackoverflow.com', 'allowCookies': 'on'},
allow_redirects=True)
</code></pre>
<p>然后响应中的<code>encodeURL</code>被取消选中(我希望,这就是您的意思)。在</p>