如何使用Cookie登录到网站并重定向?

时间:2018-10-04 19:40:26

标签: python session cookies web-scraping python-requests

我想简单地使用请求或您推荐的任何其他模块登录到网页(我的大学之一)。 问题是,在互联网上,您只能在一些没有cookie或其他任何内容的“自建”网站上找到有关如何执行此操作的教程。 有时候,棘手的部分是传递中间件令牌之类的东西,但似乎该网站没有一个。

我真的不喜欢Cookie和其他东西。因此,我不知道是否需要保存它们(以及哪些),哪些是重要的,以及通常如何使用它们。

以下屏幕截图显示了属于登录表单的cookie和标头。在您仔细检查了会话cookie或其他内容之后,似乎发生了某种重定向。

我希望可以发布很多照片,但是我认为所有这些对于解决问题都很重要。

现在提出的问题是:如何登录使用Cookie来处理会话的网站。 如果您可以帮助我解决我的特定问题,那就太好了,但是如果您只是帮助我解决问题和总体上处理cookie,我也很高兴。

我只能上传2张图片: testsession = 72087是重定向。它使用“ GET”方法,最终得到的是响应cookie(MoodleSession)。这样看来还是成功了。

如果需要更多详细信息,请咨询我,或者只是查看我正在谈论的page

我很高兴能获得所有帮助。 Cookies1 Headers1

2 个答案:

答案 0 :(得分:0)

您可能想尝试使用selenium软件包来自动导航到网站。使用硒登录后,您可以继续在同一会话中工作。

我从此 StackOverflow question的答案中获得了这段代码:

driver = webdriver.Chrome(...)

username = driver.find_element_by_id("username")
password = driver.find_element_by_id("password")

username.send_keys("YourUsername")
password.send_keys("Pa55worD")

driver.find_element_by_name("submit").click()

答案 1 :(得分:0)

您必须阅读requests的API文档,其中有一个参数allow_redirects。设置为False

import requests

url = "https://moodle.uni-due.de/login/index.php"

headers = {
    "Origin": "https://moodle.uni-due.de",
    "Referer": "https://moodle.uni-due.de/login/index.php",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.92 Safari/537.36"
}

data = {
    "username":"j******n",
    "password":"j*******Y",
    "anchor":""

}


with requests.Session() as se:
    res = se.post(url , headers = headers , data = data , allow_redirects = False)
    print(res.cookies)

输出

<RequestsCookieJar[<Cookie MoodleSession=7ip39c4u******j7pvk4tiola6 for moodle.uni-due.de/>]>
相关问题