2011-09-01 6 views
4
import urllib 
import cookielib 
import mechanize 

url = "http://hattrick.org/World/Transfers/" 

cookie = cookielib.CookieJar() 
browser = mechanize.Browser() 

browser.set_cookiejar(cookie) 
browser.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1) 

browser.open(url) 
browser.select_form(name="aspnetForm") 
browser.form['ctl00$ctl00$CPContent$ucSubMenu$ucLogin$txtUserName'] = 'login8192' 
browser.form['ctl00$ctl00$CPContent$ucSubMenu$ucLogin$txtPassword'] = '8192login' 

response = browser.submit() 

browser.select_form(name="aspnetForm") 


#<select name="ctl00$ctl00$CPContent$CPMain$ddlSkill1" id="ctl00_ctl00_CPContent_CPMain_ddlSkill1" class="skillDropDown" style="width:120px;"> 

#control=browser.form.find_control("ctl00$ctl00$CPContent$CPMain$ddlSkill1")# <--- here is the problem 

#<select name="ctl00$ctl00$CPContent$CPMain$ddlSkill1Min" id="ctl00_ctl00_CPContent_CPMain_ddlSkill1Min" 
#onchange="primaryMinSelected('ctl00_ctl00_CPContent_CPMain_ddlSkill1Min', 'ctl00_ctl00_CPContent_CPMain_ddlSkill1Max');" 
#onkeyup="primaryMinSelected('ctl00_ctl00_CPContent_CPMain_ddlSkill1Min', 'ctl00_ctl00_CPContent_CPMain_ddlSkill1Max');" style="width:120px;"> 

control=browser.form.find_control("ctl00$ctl00$CPContent$CPMain$ddlSkill1Min") 
#this works fine 

response=browser.submit() 

문제에서 양식을 찾는 것은 즉 :파이썬, 기계화 - 문제를 이름

control=browser.form.find_control("ctl00$ctl00$CPContent$CPMain$ddlSkill1") 

찾을 수 없습니다.

--------------------------- 
Error 
--------------------------- 
ControlNotFoundError: no control matching name 'ctl00$ctl00$CPContent$CPMain$ddlSkill1' 
--------------------------- 
OK 
--------------------------- 

답변

7

browser.forms() 반복기를 사용하여 사용할 수있는 양식을 확인할 수 있습니다. 파이썬 인터프리터에서 사용할 수있는 양식을 찾으려면 다음을 수행하십시오.

>>> print [form for form in browser.forms()][0] 
관련 문제