同様の投稿で、フォームの値を[on]からnot onに変更することについて質問がありました。これは、単に「True」と「False」の値を設定することでした(Mechanizeを使用)。
これはスクレイプでどのように達成されFormRequest.from_response
ますか?
編集
たとえば、mechanizeを使用してフォーム情報を取得する場合、
これはWebページフォームに付属するデフォルトです。
デフォルトでは、フォームのすべてがチェックされます。
<CheckboxControl(ac=[*on])>
type=checkbox, name=ac value=['on']
<CheckboxControl(<None>=[*on])>
type=checkbox, name=None value=[]
<TextControl(p=)>
type=text, name=p value=
<CheckboxControl(pr[]=[*0, *1, *2])>
type=checkbox, name=pr[] value=['0', '1', '2']
<CheckboxControl(a[]=[*0, *1, *2, *3, *4])>
type=checkbox, name=a[] value=['0', '1', '2', '3', '4']
<CheckboxControl(pl=[*on])>
type=checkbox, name=pl value=['on']
<CheckboxControl(sp[]=[*1, *2, *3])>
type=checkbox, name=sp[] value=['1', '2', '3']
<SelectControl(pp=[0, 1, *2, 3])>
type=select, name=pp value=['2']
' ac '、' <None>
'および' pl 'に注意してください。
それらの値は[*on]です
。目標はそれらを「オフ」にすることです(?)(チェックを外します)
FormRequest.from_response(response, formnumber=0, formdata={'pr[]': '2', 'sp[]': '3', 'pp': '3', 'a[]': ['3', '4']}))
これにより、formdataごとに変更されたボックスを含むフォームが返されます。formdataに記載されていないキーは引き続きチェックされます。
上記の投稿の例に従ってください:
FormRequest.from_response(response, formdata={'live': 'False'})
'False'、'True'、''、['']、'on'、'off'、および'None'のさまざまな値を使用してFormRequestを実行しましたが、正しい応答が得られないようです。
助言がありますか?
編集:
試みた:
FormRequest(url, formdata = {'pl': 'False'}, callback=parse_this)
FormRequest(url, formdata = {'pl': 'off'}, callback=parse_this)
FormRequest(url, formdata = {'pl': ''}, callback=parse_this)
FormRequest(url, formdata = {'pl': 'None'}, callback=parse_this)
FormRequest(url, formdata = {'pl': None}, callback=parse_this)
FormRequest.from_response(response, formdata = {'pl': 'False'})
FormRequest.from_response(response, formdata = {'pl': 'off'})
FormRequest.from_response(response, formdata = {'pl': '')
デフォルトでは、Webページはすでにチェックされているチェックボックスを含むフォームを提供します。目標は、フォームを送信し、「オン」/「オフ」の2つのオプションしかないチェックボックスを「オフにする」ことです。