2013-04-01 2 views
0

파이썬 기계화를 사용하여 웹 페이지에 로그인하려고합니다. 올바른 양식을 찾는 데 문제가 있으므로 URL (코드가 변경 될 수 있음)을 게시하는 대신 향후 사용자를 위해 여기에 일부 코드를 복사합니다. 나는 this을 읽었지 만 결정적인 대답은 아닐 것입니다.파이썬 기계화 - 양식 제출 - 올바른 양식 선택

어쨌든, 나는 양식을 얻는 곳까지 this tutorial에 기계화로 모든 것을했습니다.

내가 전화 할 때 : 원시 HTML을 보면

POST https://www.myexample.com/x-www-form-urlencoded 
HiddenControl(utf8=✓) (readonly) 
HiddenControl(authenticity_token=BfqPL1ilOXeg08Or/CEBAiK4duWgncY=  
CheckboxControl(affiliate[remember_me]=[1]) 

내가 볼 :

for form in br.forms(): 
    print form 

내가 돌아올 그러나

<label for="affiliate_email">Email<./label> 
<.input autofocus="autofocus" id="affiliate_email" 
    name="affiliate[email]" size="30" type="email" /> 

, 나는 이메일을 선택하려고 할 때 필드에 양식을 찾을 수 없습니다 오류가 발생합니다.

br.select_form(name="affiliate[email]") 
# updated to 
br.select_form(nr=0) 
# Now what do I do here to enter something into that form? 
br.form['someIDhere']='[email protected]' 

또한 양식 ID 및 기타 가능한 많은 양식 이름을 사용해 보았습니다. br.forms()를 사용하여 양식을 인쇄하는 것이 왜 이상한 결과를 반환하는지 이해하지 못합니다. 즉, 사이트가 로그인 양식에 javascript를 사용하고 있다는 뜻입니까?

미리 감사드립니다.

답변

0

affiliate[email]은 양식의 이름이 아니며 양식 내의 입력 내용입니다. 사용해보십시오 : 양식에 이름이없고 페이지의 첫 번째/유일한 형태이다

br.select_form(nr=0) 

합니다.

+0

맞아요. 저는 질문에 대한 부분이 잘못된 구문을 사용하는 것을 보았습니다. 그 이유는 br.form [ ''] (데이터를 입력해야하는 양식을 선택한 후)입니다. 내 게시물을 업데이트했습니다. 감사! – Joker