在类似的帖子中,有人询问了有关将表单值从 [on] 更改为 not on 的问题,这只是设置“True”和“False”值(使用 Mechanize)。
这将如何在 scrapy 中完成FormRequest.from_response
?
EDIT
例如,使用mechanize 获取表单信息,
这是网页表单自带的默认设置。
默认情况下,检查表单上的所有内容:
<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 中未提及的那些键仍会被检查。
按照上面帖子中的示例:
FormRequest.from_response(response, formdata={'live': 'False'})
我已经使用各种值完成了 FormRequest:'False'、'True'、''、['']、'on'、'off' 和 'None',但似乎无法得到正确的响应。
有什么建议么?
编辑:
尝试过:
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': '')
默认情况下,网页提供了一个包含已选中复选框的表单。目标是提交表单并“关闭”一些只有两个选项的复选框:“开”/“关”