我正在尝试为自己构建一个非常自己的应用程序,该应用程序每天都会向我展示我的学校替代计划(当老师生病/缺席时)。该计划始终位于
https://ohmoor.de/iserv/plan/show/Vertretungsplan/S-2018-10-30.htm
ohmoor.de学校服务器和iserv门户在哪里。最终,我想使用我urllib的https://ohmoor.de/iserv/login用户名和密码进行身份验证。正如您在检查网站时看到的那样,表单发送一个 GET 请求来验证实际用户的输入。然后,尽管我已登录(在获得 cookie 之后)并尝试从中获取 html 代码,
https://ohmoor.de/iserv/plan/show/Vertretungsplan/S-2018-10-30.htm从而导致从登录表单中获取 html 代码。任何想法为什么它不起作用以及如何解决它?这是代码:
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
import requests
my_url = "https://ohmoor.de/iserv/plan/show/Vertretungsplan/S-2018-10-
30.htm"
payload = {
"username" : "<usernamehere>",
"Password" : "<passwordhere>"
}
headers = {
'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
}
login_url = "https://ohmoor.de/iserv/login"
with requests.Session() as s:
r = s.get(login_url, data=payload)
cookies = r.cookies
r = s.get('https://ohmoor.de/iserv/plan/show/Vertretungsplan/S-2018-10-
30.htm', cookies=cookies)
print(r.text)
身份验证似乎有效,因为我在登录后打印 r 时收到 200 状态代码。而且您显然只能在身份验证后访问该计划。