2013-04-23 91 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爲指針的解決方案。