2016-06-15 2 views
2

이 요청의 효과 여부를 테스트하고 싶습니다. 요청을 세션을 사용하는 동안 html을 확인하거나 geturl() 같은 것을 할 수있는 방법이 있습니까?로그인했는지 여부는 어떻게 확인합니까?

#!/usr/bin/env python 2.7.11 
# 
import requests 


headers = {'User-Agent': 'Mozilla/5.0'} 

cookie = {'enwiki_session': '17ab96bd8ffbe8ca58a78657a918558'} 


url = 'https://127.0.0.1/login.php' 


payload = {'user': 'admin','pass': 'admin123'} 


Page = requests.Session() 
Page.post(url,headers=headers,cookies=cookie,data=payload) 

#print Page.content 
#print Page.geturl() 
+0

응답 내용을보십시오. 확실하게 성공적인 로그인이 어떤 것인지 알 수 있습니까? –

+0

은 게시 요청 후 스크립트가 현재 어떤 링크에 있는지 확인하는 방법이 있습니까? geturl()과 비슷한 것 –

+0

'p = Page.post (url, headers = headers, cookies = 쿠키, data = payload)''print p.url'을 의미합니까? –

답변

0

사람들이 페이지를 탐색 할 때 모든 사이트에 로그인하는 것은 쿠키라고하는 것입니다. HTTP cookies은 로그인 정보를 보유하는 데이터입니다. 한 페이지에서 클릭하면 쿠키없이 로그 아웃됩니다. 사용자가 수동으로 로그 아웃하거나 쿠키가 만료되지 않는 한 로그인 상태를 유지하려면 웹 사이트에 로그인 쿠키가 추가됩니다. 당신이 근근이 살아가고있는 사이트에서 쿠키를 찾으려면, 코드가 좀 다음과 같아야합니다

if "Name_of_the_login_cookie" in requests.Session.cookies: 
    #Here is where your extra code goes in 

위의 코드는 간단한 "만약 - 다음"문입니다. 쿠키가 브라우저에서 처리되는 경우 프로그램에서 수행하는 작업을 계속 수행하십시오.

잘하면 도움이 되셨을 것입니다. 요청 모듈을 충분히 사용하지는 못했지만 이것을 알고 있습니다.

-1

requests documentation 그것이 예제를 제공하지 않습니다 만 읽을 시간이 걸릴하시기 바랍니다,하지만 당신은 쉽게 하나를 수행 한 후 서버에서 반환 된 상태 코드를 확인하여 성공적인 요청을 식별 할 수 있습니다 예를 들어

합니다.

r = requests.post(url,headers=headers,cookies=cookie,data=payload) 

print r.status_code 

이것은 status code을 반환합니다.

성공하면 일반적으로 200이 반환됩니다.

관련 문제