概要 - 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仕様も参照してください
フォームが送信されると、「オン」のチェックボックス コントロールのみが成功します。
アップデート
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
応答のチェックが外されます(それがあなたの意図したことです)。