내가 웹 사이트에 로그인 requests
를 사용하려고하지만 당신은 내가 여기에 문제가파이썬은 403
을 가진 내가
import requests
EMAIL = '***'
PASSWORD = '***'
URL = 'https://portal.bitcasa.com/login'
client = requests.session(config={'verbose': sys.stderr})
login_data = {'username': EMAIL, 'password': PASSWORD,}
r = client.post(URL, data=login_data, headers={"Referer": "foo"})
print r
를 사용하고있어 코드입니다 것 같아 수있어 반환 내가
r.text
을 인쇄하는 경우
와 나는 그들은 장고와 피라미드의 조합을 사용하고
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head><script type="text/javascript">var NREUMQ=NREUMQ||[];NREUMQ.push(["mark","firstbyte",new Date().getTime()])</script>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="robots" content="NONE,NOARCHIVE">
<title>403 Forbidden</title>
<style type="text/css">
html * { padding:0; margin:0; }
body * { padding:10px 20px; }
body * * { padding:0; }
body { font:small sans-serif; background:#eee; }
body>div { border-bottom:1px solid #ddd; }
h1 { font-weight:normal; margin-bottom:.4em; }
h1 span { font-size:60%; color:#666; font-weight:normal; }
#info { background:#f6f6f6; }
#info ul { margin: 0.5em 4em; }
#info p, #summary p { padding-top:10px; }
#summary { background: #ffc; }
#explanation { background:#eee; border-bottom: 0px none; }
</style>
</head>
<body>
<div id="summary">
<h1>Forbidden <span>(403)</span></h1>
<p>CSRF verification failed. Request aborted.</p>
</div>
<div id="explanation">
<p><small>More information is available with DEBUG=True.</small></p>
</div>
<script type="text/javascript">if(!NREUMQ.f){NREUMQ.f=function(){NREUMQ.push(["load",new Date().getTime()]);var e=document.createElement("script");e.type="text/javascript";e.src=(("http:"===document.location.protocol)?"http:":"https:")+"//"+"d1ros97qkrwjf5.cloudfront.net/42/eum/rum.js";document.body.appendChild(e);if(NREUMQ.a)NREUMQ.a();};NREUMQ.a=window.onload;window.onload=NREUMQ.f;};NREUMQ.push(["nrfj","beacon-1.newrelic.com","0e859e0620",778660,"ZAZRbUcHWBAHURFYX11MdUxbBUIKCVxKVVpSDVRWGwtfBwJeAEZRQQYdWkYUUFklQRdXZloGRHRcAlIPA0UEQ1UdE0FWVgNFEDlEDFRH",0,7,new Date().getTime(),"","","","",""])</script></body>
</html>
를 얻을.
저는 약 2 일 동안 이걸 가지고 놀았지만 분명히 아무데도 못 받았습니다. 당신의 도움을 주셔서 감사합니다. 오류 메시지에서 알 수 있듯이, 당신이 먼저 GET
에 로그인 페이지를 필요로하는 csrf token
누락
는
답장을 보내 주셔서 감사합니다.하지만 여전히 동일한 오류가 발생합니다. 논리는 이해가된다. 아마도 csrf_token은'POST'에서 다른 매개 변수로 전달되어야할까요? 요청 및 csrf_tokens에 대한 정보를 찾을 수 없습니다. – Jeff
@Jeff : 매개 변수가 정확합니다. 브라우저는 정확히 동일한 이름으로 게시합니다. 서버가 사용자 에이전트 문자열 테스트와 같은 다른 조치를 취할 수 있습니다. 시행 착오가 필요합니다. 로그인 할 때 게시 된 내용에 대한 브라우저의 개발자 도구가 무엇인지 언제나 알 수 있습니다. –
대부분의 경우 CSRF 토큰이 requests.Session() 객체 내부에서 요청되어야합니다. 그렇지 않으면 CSRF 토큰이 유효하지 않습니다. –