我刚开始尝试通过机械化提交webforms。在this webpage有一个项目清单,MASTER_MODS
。可以使用按钮add_IT_MODS
(参见底部的图)使用或IT_MODS
选择MODS
中的这些选项。在形式,它看起来像这样(在底部代码形式):机械化如何添加到选择列表?
<<SNIP>>
<SelectControl(MODS=[*--- none selected ---])>
<IgnoreControl(add_MODS=<None>)>
<SelectControl(MASTER_MODS=[])>
<SelectControl(IT_MODS=[*--- none selected ---])>
<IgnoreControl(remove_IT_MODS=<None>)>
<IgnoreControl(add_IT_MODS=<None>)>
<<SNIP>>
所以我想添加到<SelectControl(MODS=[*--- none selected ---])>
和<SelectControl(IT_MODS=[*--- none selected ---])>
。然而,当我尝试使用
br.form[ 'MODS'] = ['Acetyl (N-term)']
直接添加一个项目,我得到mechanize._form.ItemNotFoundError: insufficient items with name 'Acetyl (N-term)'
,当我尝试
br.form[ 'add_MODS'] = 'Acetyl (N-term)'
我得到ValueError: control 'add_MODS' is ignored, hence read-only
。
如何添加项目到MODS
和IT_MODS
?
图和代码
代码:
from mechanize import Browser, _http
br = Browser()
br.set_handle_robots(False)
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
url = "http://www.matrixscience.com/cgi/search_form.pl?FORMVER=2&SEARCH=MIS"
br.select_form('mainSearch')
br.open(url)
print br.form
我的示例链接中出现“致命错误”。 – KobeJohn
@kobejohn我有一个尾随]在里面,现在修好了。 –
我没有机械化经验,但我有一堆问题。加入我[聊天](http://chat.stackoverflow.com/rooms/42047/mechanize-how-to-add-to-a-select-list)? – KobeJohn