0

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

我正在尝试调试我的代码以查看无法正常工作的内容。我想要做的是我已经使用 Firefox 登录了一个网页。我正在使用 Firebug 来捕获请求/响应标头。此页面在登录后大约有 2/3 层深。

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

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

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

4

1 回答 1

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.

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

于 2013-07-30T08:20:18.057 回答