我想简单地使用请求或您推荐的任何其他模块登录到网页(我的大学之一)。 问题是,在互联网上,您只能在一些没有cookie或其他任何内容的“自建”网站上找到有关如何执行此操作的教程。 有时候,棘手的部分是传递中间件令牌之类的东西,但似乎该网站没有一个。
我真的不喜欢Cookie和其他东西。因此,我不知道是否需要保存它们(以及哪些),哪些是重要的,以及通常如何使用它们。
以下屏幕截图显示了属于登录表单的cookie和标头。在您仔细检查了会话cookie或其他内容之后,似乎发生了某种重定向。
我希望可以发布很多照片,但是我认为所有这些对于解决问题都很重要。
现在提出的问题是:如何登录使用Cookie来处理会话的网站。 如果您可以帮助我解决我的特定问题,那就太好了,但是如果您只是帮助我解决问题和总体上处理cookie,我也很高兴。
我只能上传2张图片: testsession = 72087是重定向。它使用“ GET”方法,最终得到的是响应cookie(MoodleSession)。这样看来还是成功了。
如果需要更多详细信息,请咨询我,或者只是查看我正在谈论的page。
答案 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/>]>