2014-02-14 2 views
1

아래 링크의 소스를 보면 두 가지 양식이 표시됩니다. 이름이 "doLoginPin"인 양식을 선택하려고합니다. 내가 아래를 할 때 양식을 찾을 수 없습니다. 이 양식은 동적으로 생성되는 것이므로 찾을 수 없습니까? 누구든지 전에 이것에 부딪쳐서 해결책을 찾았습니까?기계어로 양식을 찾을 수 없습니다

br.open('https://www.getipass.com/ipass/LoginPin.jsp') 

for f in br.forms(): 
    print f 

궁극적으로 내 목표는 로그인하여 기본 계정 데이터 일부를 긁는 것입니다. 고맙습니다.

+0

양식에서 데이터를 전송하는 모든 주소에 적절한 요청을 보내지 않는 이유는 무엇입니까? –

+0

@ RyanO'Donnell 어떻게 생각 하나? 양식 작업은 action = "LoginPin.jsp" – jsm1th

+0

요청 라이브러리를 살펴보십시오. http://docs.python-requests.org/en/latest/ –

답변

2

간단한 방법은 Selenium Webdriver을 사용하는 것입니다. 그것은 당신이 요청을하기 위해 실제 브라우저를 운전할 수있게합니다. 그것은 때때로 약간 무거운 무게 일 수 있지만, 나는 작은 종류의 이런 작업에 유용하다는 것을 안다. (나는 브라우저를 구동하기 위해 Firefox를 사용할 것을 권한다.)

pip install selenium과 함께 설치할 수 있습니다.

이 스크립트는 사용자 이름이 foo이고 비밀번호가 bar 인 로그인을 시도합니다.

from selenium import webdriver 

if __name__ == '__main__': 
    url = 'https://www.getipass.com/ipass/LoginPin.jsp' 
    driver = webdriver.Firefox() 
    driver.get(url) 

    username = driver.find_element_by_name('txtLoginParam') 
    password = driver.find_element_by_name('txtPass') 
    username.send_keys('foo') 
    password.send_keys('bar') 
    password.submit()