2014-06-13 4 views
-2

저는 현재 파이썬 스크립트를 작성하여 웹 사이트에 로그인하려고합니다. 액세스하려면 이메일과 비밀번호가 필요합니다.파이썬으로 웹 사이트에 로그인하는 방법은 무엇입니까?

어떤 모듈이 가장 적합합니까? 검색 한 웹 사이트의 소스 코드는 다음과 같은 상태와 같이 나의 현재 스크립트는 요청 모듈을 사용하지만, 실패 :

오류를

</title></head> 
<body> 
<div id="fb-root"></div> 
<script type="text/javascript"> 
    //Base variables 
    var IsLoggedOn = false; 
    var CurrentUserId = 0; 
    var EventFollowingHash = 6864; 
    var AjaxSource = 'http://www.iex.nl'; 
</script> 

여기 내 코드입니다 :

import requests 

with requests.Session() as c: 
    url = "WEBSITE URL" 
    USERNAME = "VALID EMAIL" 
    PASSWORD = "VALID PASSWORD" 

    c.get(url) 

    login_data = dict(username=USERNAME, password=PASSWORD, next='/') 
    c.post(url, data=login_data, headers={"Referer":"WEBSITE URL"}) 
    page = c.get("PROTECTED LAYER OF WEBPAGE") 

    print page.content 

오신 것을 환영합니다,이 사람은 잠시 나를 괴롭혔습니다 !!

+0

[Fiddler] (http://www.telerik.com/fiddler)와 같은 것을 사용하면 HTTP 요청을보고 정확한 POST 데이터와 쿠키 등을 확인하는 것이 도움이됩니다. –

답변

0

urllib2 (문서는 여기에서 : https://docs.python.org/2/howto/urllib2.html)를 확인하십시오. 기본 인증에는 여기에 정보가 많이 있습니다 (특히 관련 기사 링크). 난 당신이 직면하고있는 특정 시나리오에 대해 더 많이 알지 못해서 코드를 자세히 설명 할 수는 없지만,이 페이지의 예제는 잘 돌아갈 것입니다.

0

솔직히 파이썬의 mechanize 모듈을 사용하여 이것을 수행하는 쉬운 방법이 있습니다 (이를 설치하려면 easy_install을 사용하십시오).

나는 기계어 &을 사용하여 시뮬레이터 계정에 로그인하고 로그 아웃하는 거래 알고리즘을 작성했습니다.

먼저, 먼저 웹 사이트에서 이메일 및 비밀번호 입력의 "이름"속성을 찾아야합니다. 이메일의 이름 속성이 "이메일"이고 비밀번호의 이름 속성이 "비밀번호"라고 가정 해 보겠습니다. 당신이,

import mechanize 

br = mechanize.Browser() 
url = "the url of the login page" 
br.open(url) 

#you have to select the form before you can input stuff to it 
browser.select_form(name="form") 

br.form["email"] = "your username" 
br.form["password"] = "your password" 

#you have to "select" the submit button by its name attribute 
br.form["submit"] 

#submit the form 
br.submit() 

#open the login-protected page 
br.open(trade_url) 

#do whatever you want with the page now that you've gained access 

가 기억 또한,의 양식 자체에 대한 이름 속성이 "형태"를 제출 버튼의 이름 속성입니다 생각한 것은 "제출"

귀하의 코드는 다음과 같은 것을 보일 것입니다 위의 코드를 실행하기 전에 mechanize를 설치하십시오. 쉬운 설치 또는 기계화 문서 here을 참조하십시오.

+0

감사합니다. 불행하게도 운이 없다. mechanize 모듈이 성공적으로 설치되었지만 성공적으로 로그인 할 수없는 경우. 다음은 연결하려는 웹 사이트입니다 : http://www.virtualtrader.co.uk/member/login.aspx – user3508354

+0

성공적으로 로그인하지 않은 경우 어떻게 되었을까요? 오류 메시지가 있었습니까? 양식, 이메일, 비밀번호 및 제출 버튼에 어떤 이름 속성을 사용 했습니까? – kttr

+0

코드의 오류 메시지 없음 - 그러나 스크립트를 실행하면 초기 로그인 페이지의 소스 코드가 반환되어 사용자에게 다시 시도하라는 메시지가 표시됩니다. 이 코드에는 첫 번째 게시물에 표시된 초기 오류가 포함되어 있습니다. 나는 특성을 명명하는 것과 관련하여 당신이 의미하는 것을 완전히 이해하고 있는지, 이것이 초기 코드에서 사용 된 것과 다른지 잘 모르겠다. 다시 한번 감사드립니다 – user3508354

관련 문제