2013-07-30 1 views
0

Я попытался осмотреться для ответа, но не нашел - так я спрашиваю здесь:Мимические подписанный на клиента к веб-серверу

Я пытаюсь отлаживать свой код, чтобы увидеть то, что ISN Не работаем. То, что я пытаюсь сделать, - это войти в веб-страницу с помощью Firefox. Я использую Firebug для захвата заголовков запросов/ответов. Эта страница примерно на 2/3 уровня после входа в систему.

Я пытаюсь загрузить эту третью страницу через мой код Python, реплицируя файлы cookie и заголовки запросов. Но сервер каким-то образом знает, что запрос выполняется от неавторизованного клиента и отвечает на страницу входа. AFAIK, единственные файлы cookie - это .ASPXAUTH cookie и ASP.NET_SessionId, которые я проверил, передаются из моего кода на Python.

Так что мой вопрос: Как мне подражать/обманывать сервер, думая, что запрос исходит от аутентифицированного клиента.

Дополнительные примечания: a) Я использую тот же самый компьютер для входа на веб-страницу через firefox и для запуска кода Python. Таким образом, локальный ip такой же. b) Я одновременно вошел в систему на веб-странице, я пытаюсь реплицировать запрос python (например, сеанс активен).

ответ

0

Проблема заключается в аутентификации на основе файлов cookie. Если скорость не такая уж большая проблема, или для веб-сервера требуется работа 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. 

Вы можете заполнить формы, подождать некоторое конкретное содержание появляться и т.д.

Смежные вопросы