2012-08-03 2 views
0

어떻게 파이썬 urllib2가

파이썬 urllib2가

을과 같이 설정 웹 사이트에 로그인 사용에 대한 갈 것이라고 아래의 형태와 onsubmit에 자바 스크립트 처리기입니다. 이걸 파이썬으로 어떻게 처리할까요?

<script> 

function handleLogin() {document.login.un.value = document.login.username.value;document.login.width.value = screen.width;document.login.height.value = screen.height;} 

</script> 

다음은 게시물로 보낼 모든 구성 요소가 포함 된 html 양식입니다. 나를 붙드는 것은 onsubmit 기능입니다. 자바 스크립트없이 쉽게 사이트와 함께 작동 내가 가진

<form id='login' name='login' method='post' onsubmit="handleLogin();" action='login.php'> 

<input class="txtbox glow" type="text" id="username" name="username" value="blanksss"> 

<input class="txtbox glow" type="password" id="password" name="pw" size="18" autocomplete="off" onkeypress="checkCaps(event)"> 

<input class="checkbox" type="checkbox" id="rememberUn" name="rememberUn" checked="checked"> 

<input class="loginButton" type="submit" id="Login" name="Login" value="Login"> 

</form> 

파이썬 코드는 다음과 같습니다 자바 스크립트 코드는 다음 양식의 작용에 완성 된 결과를 게시 처리하는 방법에 대한

cj = cookielib.CookieJar() 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) 
opener.addheaders.append(('User-agent', 'Mozilla/4.0')) 
opener.addheaders.append(('Referer', 'https://login.site.com/')) 
login_data = urllib.urlencode({'username' : 'mylogin', 
           'pw' : 'mypass', 
           'Login' : 'Login', 
           'rememberUn' : 'checked' 
           }) 
resp = opener.open('https://login.site.com/', login_data) 
website = opener.open('https://eu1.site.com/a03/o') 

bowl = BeautifulSoup(website) 

어떤 생각?

감사

+0

파이썬 2.7에서 작동합니다

import requests data = { "username" : "youruser", "password" : "yourpass", "Login" : "Login", } r = requests.post(url, data=data) 

요청합니다. – cwa

답변

0

그래, 당신이 시도하고 서버로 전송되고 아니면 그냥 실제 브라우저를 구동하기 위해 셀레늄 webdriver을 사용할 수 있는지 알아 내기 위해 웹 개발자 도구를 사용할 수 있습니다. xvfb를 사용하여 헤드리스를 수행 할 수도 있습니다.

from selenium import webdriver 

browser = webdriver.Chrome() 
browser.get('http://some_url.com') 
browser.find_element_by_id('username').send_keys('your_login') 
browser.find_element_by_id('password').send_keys('your_password') 
browser.find_element_by_id('Login').click() 

print browser.page_source 
browser.close() 

경로에 chromedriver executable이 있어야합니다.

0

사용이 스크립트는 실제로 회선을 통해 무슨 일이 일어나고 있는지보기 위해 불을 지르고 또는 동등한를 사용해보십시오

관련 문제