模仿已登录的客户端到网络服务器

时间:2013-07-30 07:19:30

标签: python authentication

我试着四处寻找答案,但没找到 - 所以我在这里问:

我正在尝试调试我的代码以查看无法正常工作的内容。我想要做的是使用Firefox登录网页。我正在使用Firebug捕获请求/响应标头。此页面在登录后约为2/3级别。

我正在尝试通过复制Cookie和请求标头来加载我的Python代码中的第3页。但服务器以某种方式知道请求来自未经身份验证的客户端并使用登录页面进行响应。 AFAIK,唯一的cookie是.ASPXAUTH cookie和我验证过的ASP.NET_SessionId是从我的python代码传递的。

所以我的问题:我如何模仿/诱骗服务器认为请求来自经过身份验证的客户端。

附加说明: a)我使用相同的机器通过firefox登录网页并运行Python代码。所以本地ip是一样的。 b)我在尝试复制python请求的同时登录到网页(即会话处于活动状态)。

1 个答案:

答案 0 :(得分:0)

问题似乎在于基于cookie的身份验证。如果速度不是问题,或者网络服务器需要JavaScript才能工作,最简单的解决方案就是使用selenium。 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.

您可以填写表格,等待某些特定内容出现等。