2014-06-24 5 views
0

저는 파이썬을 http/https 사이트에 연결하려고 시도 했었고 urllib와 urllib2를 보았습니다. 몇 가지 조사를 한 후에 웹 사이트 로그인을 만들 수 있었지만 잘못된 것을하고있는 것처럼 보였습니다. 다른 웹 페이지에서 시도했지만 어떤 것도 할 수 없습니다. 내가 작업했던 코드가있다 :파이썬으로 웹 사이트에 로그인 할 때 문제가 발생했습니다.

import urllib, urllib2, cookielib 

#guardar cookies 
cookies = cookielib.CookieJar() 

#crear opener 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookies)) 

user = raw_input("Introdueix el teu nom d'usuari: ") 
contra = raw_input("Introdueix la teva pass: ") 

login_data = urllib.urlencode({'login' : user,'password' : contra}) 
sessio = opener.open('http://streamcloud.eu/login.html', login_data) 

#en teoria ja esta logejat a partir d'aqui 

print "La URL accedida es:",sessio.geturl() 

#tanquem la web 
sessio.close() 

웹 사이트의 양식이 하나입니다

<form method="POST" action="http://streamcloud.eu/" class="proform" name="FL"> 
<input type="hidden" name="op" value="login"> 
<input type="hidden" name="redirect" value="http://streamcloud.eu/?op=upload"> 

<p> 
    <label>Username:</label> 
    <input type="text" style="font-style: normal;" name="login" value="deuseux" class="text_field" /> 
</p> 
<div class="clear"></div> 
<p> 
    <label>Password:</label> 
    <input type="password" style="font-style: normal;" name="password" class="text_field" /> 
</p> 
<div class="clear"></div> 
<div> 
    <input type="submit" class="button blue medium" value="Submit"> 
</div> 
<div class="clear"></div> 

로그인 양식이 웹 페이지에 있습니다 http://streamcloud.eu/login.html 그동안 양식의 동작은 http://streamcloud.eu에 있습니다. 내가 잘못한 부분이있을 수도 있습니다. sessio.read()를 인쇄하면 분명히 로그인하지 않은 것을 볼 수 있습니다.

코드에 문제가있는 것이 있습니까? 감사합니다.

추신 : 내 나쁜 영어

+0

을 잘 모르겠어요하지만 난 당신이이 POST – Hunsu

+0

당신은 도움이 관련 답변을 찾을 수 없습니다받을 수 있나요 생각 : HTTP를 : //stackoverflow.com/a/20926348/1382251 –

답변

1

여러분의 영어에 대한 유감은 로그인 및 암호와 함께 제출해야처럼 보이는 형태 2 개 다른 숨겨진 입력 필드가 있습니다 :)

괜찮습니다. 이들은 :

<input type="hidden" name="op" value="login"> 
<input type="hidden" name="redirect" value="http://streamcloud.eu/?op=upload"> 

나는 redirect=...에 대해 확실하지, op=login이 필요하다고 추측에는 요 - 어쩌면 당신이 필요하지 않습니다. 어쨌든, 다음에 데이터를 변경 시도하고 당신이 더 얻을 수 있는지 :

login_data = urllib.urlencode({'login' : user, 'password' : contra, 'op' : 'login', 'redirect' : 'http://streamcloud.eu/?op=upload'}) 
+0

문제가 해결되었습니다. 감사합니다. sessio = opener.open ('http://streamcloud.eu/login.html', 로그인 데이터) 은 으로 변경되어야 함 sessio = opener.open ('http://streamcloud.eu/', login_data) – lpares12

+0

물론, 양식 데이터를 올바른 URL ('http : // streamcloud.eu /')에 게시해야합니다. 사이트가 https를 지원하지 않는 것 같습니다. – mhawke

관련 문제