2013-04-23 88 views
1

我使用机械化的蟒蛇2.7.3。我在寻找NIH's gene website上提交按钮的帮助。Python的机械化提交按钮上NIH网站

按钮是由div的,而不是内部的任何表单字段包围的实际按钮元件。

<button id="search" type="submit" class="button_search nowrap" cmd="go">Search</button> 

所以例子,我所看到远处在线提交按钮通常具有机械化可以选择,或者是一个形式,所以我可以做br.submit一个名称或标记()。

我怎么会打提交关于这一个?

感谢

+0

可能相关:http://stackoverflow.com/questions/3956280/submitting-a-form-in-mechanize – ubik 2013-04-23 19:17:33

+0

没有,在我的案件提交按钮是不是一个形式里面。我相信这呈现br.select_form()无用。 – imyjimmy 2013-04-23 19:54:07

回答

2

的按钮不提交直接,而是触发JavascriptEvent,最终将加载搜索页面。这解释了为什么该按钮在您的浏览器中工作,即使它不在表单内。

mechanize无法运行JS代码,因此您将无法直接使用mechanize直接点击按钮。

是否有一个原因,你不能只是打开目标网址?这些看起来很简单,甚至在高级搜索表单,例如:

term = '("31"[Chromosome]) AND "000"[Disease/Phenotype]' 
q = urllib.urlencode({'term': term}) 
response = mechanize.urlopen('http://www.ncbi.nlm.nih.gov/gene?%s' % q) 

如果这不适合你,你将不得不求助于它不支持JavaScript,请参阅https://stackoverflow.com/questions/606550/watir-vs-selenium-vs-sahi为指针的解决方案。