模拟登录到Web的客户端

2024-09-27 22:39:30 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我正在试着调试我的代码,以查看一些不起作用的东西。我要做的是,我已经使用Firefox登录到一个网页。我使用Firebug捕获请求/响应头。这个页面在登录后大约有2/3层深。你知道吗

我试图通过复制cookies和请求头,通过Python代码加载第3页。但是服务器不知何故知道请求来自未经验证的客户机,并用登录页进行响应。 好吧,唯一的曲奇是一个.ASPXAUTH曲奇和一个ASP.NET会话ID我已经验证过,它是从python代码中传递的。你知道吗

那么我的问题是:如何模仿/欺骗服务器,使其认为请求来自经过身份验证的客户端。你知道吗

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


Tags: 答案代码服务器身份验证id网页客户端客户机
1条回答
网友
1楼 · 发布于 2024-09-27 22:39:30

问题似乎出在基于cookie的身份验证中。如果速度不是一个很大的问题,或者web服务器需要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.

你可以填写表格,等待一些特定的内容出现等

相关问题 更多 >

    热门问题