我正在寫一個python腳本,從我的學校網站下載課堂內容(mp4,pdf)。我的學校使用Weblogin SSO身份驗證來訪問他們的任何受保護的URL。如何處理javascript內容並在成功登錄weblogin SSO後進行重定向?
我能夠驗證使用下面的腳本的第一部分,我的憑據:
#1. Authenticate
login_url = "https://weblogin.MY_SCHOOL.edu/login"
payload = {'login':'my_loging','password':'my_pass'}
target_url = "https://My_SCHOOL.instructure.com/courses/12345678""
with requests.Session() as c:
req_headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36}'}
c.headers.update(req_headers)
c.get(login_url) # to get cookies
c.post(url1, data=payload) #,headers = req_headers)
#2. get html from target site
W1 = c.get(target_url)
print(W1.url)
print(W1.text)
#3. parse html and download content.
#tbc
我可以看到我的驗證是成功的c.post.text,但whenver我嘗試訪問任何的目標網站使用get()在相同的requests.session()中,我沒有得到我的班級預期的html內容,而是一條消息,內容如下:
「既然你的瀏覽器不支持JavaScript,您必須按一下 繼續按鈕才能繼續「
而且目標URL重定向到這個網址:
我爲什麼不能成功SSO身份驗證後訪問目標網址?我不確定請求模塊中的javascript支持是否是這裏的問題,因爲即使當我在我的Internet瀏覽器中禁用JS支持時,我也能夠看到target_url的一些html內容,儘管不是全部。這似乎很奇怪,我的get()請求卡在重定向的URL:「https:.../SAML2 /重定向/ SSO」
我很感激任何關於如何解決此問題的指針。我不想使用硒或機械化等webdrivers。我已經使用QtWebkit來呈現Javascript內容,但我不知道是否可以將我的身份驗證cookie從我的request.session()傳輸到QtWebkit。
任何幫助,非常感謝。謝謝
該代碼嵌入我的問題。我不知道你還需要什麼...... – ricardo3889