如何传递网址并取消选中帖子请求中的复选框。
HTML看起来像这样:
<input type="checkbox" name="encodeURL" ID="encodeURL" checked="checked">
我正在使用requests,第三方python库,如下所示:
payload = {'u': 'http://www.google.com', 'encodeURL': '0'}
r = requests.post('http://www.website.com/', data=payload)
到目前为止,将'encodeURL'设置为'0','未选中',''并且0不会在未选中复选框的情况下发布请求。 如何找到要传递给“encodeURL”的值才能取消选中该复选框?
答案 0 :(得分:3)
摘要 - TL / DR
取消选中有效负载
中的排除框payload = {'u': 'http://www.google.com'}
r = requests.post('http://www.website.com/', data=payload)
要检查有效负载中的包含框
payload = {'u': 'http://www.google.com', 'allowCookies': 'on'}
r = requests.post('http://www.website.com/', data=payload)
<强>说明强>
需要区分html标记(在您的示例中默认设置复选框)与服务器端行为(完全正交)。您显然想要做的是模仿使用未选中复选框提交表单时浏览器的行为。
在这种情况下,服务器不会接收任何 encodeURL
参数,只是从请求中省略它。
另请参阅HTML Spec
提交表单后,只有“on”复选框控件可以变为successful。
<强>更新强>
在使用TamperData插件调查您的特定情况后,我发现它可能与速度限制处理cookie的方式有关,因此这不是请求库的错误,只是站点的特性。这段代码似乎有效:
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)
然后取消选中回复中的encodeURL
(我希望,这就是你的意思)。
答案 1 :(得分:-1)
//检查
document.getElementById("encodeURL").checked = true;
//取消选中
document.getElementById("encodeURL").checked = false;
jQuery(1.6 +):
//检查
$("#encodeURL").prop("checked", true);
//取消选中
$("#encodeURL").prop("checked", false);