2013-07-30 3 views
0

에 대한 클라이언트에 서명 나는 대답을 둘러보고하려고했습니다 그러나 어떤을 찾지 못했습니다 - 그래서 내가 여기 부탁 해요 :모방 웹 서버

나는 외설 무언가를보고 내 코드를 디버깅하는 것을 시도하고있다 일하고있어. 내가하려는 것은 Firefox를 사용하여 웹 페이지에 로그온했습니다. Firebug를 사용하여 요청/응답 헤더를 캡처하고 있습니다. 이 페이지는 로그인 후 약 2/3 수준입니다.

쿠키와 요청 헤더를 복제하여이 세 번째 페이지를 내 파이썬 코드를 통해로드하려고합니다. 그러나 서버는 요청이 인증되지 않은 클라이언트에서 왔음을 알고 로그인 페이지로 응답합니다. AFAIK, 유일한 쿠키는 .ASPXAUTH 쿠키이고 확인한 ASP.NET_SessionId는 Python 코드에서 전달됩니다.

그럼 내 질문 : 어떻게 인증 요청한 클라이언트에서 오는 생각으로 서버를 모방하거나 속임수.

추가 참고 사항 : a) 파이어 폭스를 통해 웹 페이지에 로그인하고 파이썬 코드를 실행하기 위해 동일한 컴퓨터를 사용하고 있습니다. 따라서 로컬 IP는 동일합니다. b) 파이썬 요청 (예 : 세션이 활성화되어 있음)을 복제하려고 할 때 웹 페이지에 동시에 로그온합니다.

답변

0

쿠키 기반 인증에 문제가있는 것 같습니다. 속도가 그다지 문제가되지 않거나 웹 서버에 JavaScript가 필요한 경우 가장 쉬운 해결책은 셀렌을 사용하는 것입니다. https://pypi.python.org/pypi/selenium

from selenium import webdriver 
import time 

browser = webdriver.Firefox() # Start a firefox instance in "WebDriver" mode 
browser.get("http://www.example.com") # load the page 
assert "Example Domain" in browser.title # make sure that we have the right page 
elem = browser.find_element_by_tag_name("a") # find the only link 
elem.click() # click on the link 
time.sleep(0.2) # Let the page load 
# etc. etc. 

당신은 어떤 특정 콘텐츠 등 나타날 때까지 기다립니다, 양식을 채울 수