2013-04-23 2 views
1

파이썬 2.7.3에서 mechanize를 사용하고 있습니다. 제출 버튼을 누르는 데 도움이 필요합니다 (NIH's gene website).파이썬 기계어 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-chanchanize – ubik

+0

아니요, 제 사례의 제출 버튼이 양식 안에 없습니다. 나는 이것이 br.select_form()을 쓸모 없게 만든다고 생각한다. – imyjimmy

답변

2

버튼 대신 직접 위해를 제출하지 않지만, 결국 검색 페이지를로드하는 JavascriptEvent을 트리거합니다. 이것은 폼 내부에 있지 않아도 브라우저에서 버튼이 작동하는 이유를 설명합니다.

mechanize은 JS 코드를 실행할 수 없으므로 mechanize을 사용하여 버튼을 직접 "클릭"할 수 없습니다.

대상 URL을 열 수없는 이유가 있습니까? 이 예를 들어, 심지어 고급 검색 폼에, 매우 간단 보인다 :이 당신을 위해 작동하지 않는 경우

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

, 당신은 자바 스크립트를 지원하는 포인터에 대한 https://stackoverflow.com/questions/606550/watir-vs-selenium-vs-sahi를 참조 않는 솔루션을 후퇴해야합니다.

관련 문제