最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中如何實現(xiàn)MOOC掃碼登錄

 更新時間:2023年01月06日 09:21:19   作者:_ccd_yuan_  
這篇文章主要介紹了Python中如何實現(xiàn)MOOC掃碼登錄,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

1、基本原理

  • 訪問網(wǎng)站掃碼登錄頁,網(wǎng)站給瀏覽器返回一個二維碼和一個唯一標(biāo)志KEY
  • 瀏覽器開啟定時輪詢服務(wù)器,確認(rèn)KEY對應(yīng)的掃碼結(jié)果
  • 用戶使用app掃碼二維碼,app獲取KEY并告知服務(wù)器已掃碼
  • App確認(rèn)登陸(包含個性化校驗過程),服務(wù)器更新KEY的校驗結(jié)果
  • 瀏覽器輪詢結(jié)果成功,獲得一次性token
  • 帶上token請求資源,獲得有效cookie,正常訪問資源。

2、代碼實現(xiàn)

我們以MOOC為例

1、訪問網(wǎng)站掃碼登錄頁,并下載二維碼

session = requests.session()
url = 'https://www.icourse163.org/logonByQRCode/code.do?width=182&height=182'   # 掃碼登錄url
header = {
    'referer': 'https://www.icourse163.org/',
    'user-agent': ua
}
resp = session.get(url,headers = header).json()		# 拿到相應(yīng)的json數(shù)據(jù)
codeUrl = resp['result']['codeUrl']				# 提取二維碼url及唯一標(biāo)志key
pollKey = resp['result']['pollKey']
codejpg = session.get(codeUrl)				# 請求二維碼
with open('text.jpg','wb') as f:			# 下載二維碼
    f.write(codejpg.content)

2、模擬輪詢

利用已得的唯一標(biāo)志key對服務(wù)器發(fā)起定時輪詢,獲得相應(yīng)數(shù)據(jù)

通過分析,codeStatus的值為0是表示,等待掃碼;codeStatus的值為1是表示,已掃碼,等待確認(rèn)登錄;codeStatus的值為2是表示,掃碼成功,此時服務(wù)器會返回token,這個對我們很有用

checkUrl = f'https://www.icourse163.org/logonByQRCode/poll.do?pollKey={pollKey}'
os.system('start text.jpg')
token = None
for i in range(20):				# 模擬輪詢
    checkResp = session.get(checkUrl,headers = header).json()
    if checkResp['result']['codeStatus'] == 2:
        token = checkResp['result']['token']		# 提取token
    else:
        time.sleep(1)			# 每秒一次

3、彈出二維碼,掃碼登錄

os.system('start text.jpg')

4、帶上token請求資源

獲得有效cookie,正常訪問資源。

vaildateUrl = f'https://www.icourse163.org/passport/logingate/mocMobChangeCookie.htm?token={token}&returnUrl=aHR0cHM6Ly93d3cuaWNvdXJzZTE2My5vcmcvaW5kZXguaHRt'	# returnUrl指MOOC網(wǎng)
session.get(vaildateUrl,headers = header)

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • opencv調(diào)整圖像亮度對比度的示例代碼

    opencv調(diào)整圖像亮度對比度的示例代碼

    本文通過實例代碼給大家介紹了opencv調(diào)整圖像亮度對比度,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • Python使用unittest進(jìn)行有效測試的示例詳解

    Python使用unittest進(jìn)行有效測試的示例詳解

    這篇文章主要介紹了如何使用?unittest?來編寫和運(yùn)行單元測試,希望通過閱讀本文,大家能了解?unittest?的基本使用方法,以及如何使用?unittest?中的斷言方法和測試用例組織結(jié)構(gòu)
    2023-06-06
  • python裝飾器常見使用方法分析

    python裝飾器常見使用方法分析

    這篇文章主要介紹了python裝飾器常見使用方法,結(jié)合實例形式分析了Python裝飾器的功能及三種常見的裝飾模式使用技巧,需要的朋友可以參考下
    2019-06-06
  • Python selenium 三種等待方式解讀

    Python selenium 三種等待方式解讀

    這篇文章主要介紹了Python selenium一定要會用selenium的等待,三種等待方式解讀的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • 用pyqt5 給按鈕設(shè)置圖標(biāo)和css樣式的方法

    用pyqt5 給按鈕設(shè)置圖標(biāo)和css樣式的方法

    今天小編就為大家分享一篇用pyqt5 給按鈕設(shè)置圖標(biāo)和css樣式的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • window11系統(tǒng)下Python3.11安裝numpy庫超詳細(xì)教程

    window11系統(tǒng)下Python3.11安裝numpy庫超詳細(xì)教程

    這篇文章主要給大家介紹了關(guān)于window11系統(tǒng)下Python3.11安裝numpy庫的相關(guān)資料,NumPy是Python的第三方擴(kuò)展包,但它并沒有包含在Python標(biāo)準(zhǔn)庫中,因此您需要單獨(dú)安裝它,需要的朋友可以參考下
    2023-12-12
  • Python編碼規(guī)范擺脫P(yáng)ython編碼噩夢

    Python編碼規(guī)范擺脫P(yáng)ython編碼噩夢

    Python 中編碼問題,一直是很多 Python 開發(fā)者的噩夢,盡管你是工作多年的 Python 開發(fā)者,也肯定會經(jīng)常遇到令人神煩的編碼問題,收藏這篇文章以后你可以不用再Google
    2021-10-10
  • 利用python-docx模塊寫批量生日邀請函

    利用python-docx模塊寫批量生日邀請函

    這篇文章主要為大家詳細(xì)介紹了利用python-docx模塊批量生日邀請函,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Ubuntu權(quán)限不足無法創(chuàng)建文件夾解決方案

    Ubuntu權(quán)限不足無法創(chuàng)建文件夾解決方案

    這篇文章主要介紹了Ubuntu權(quán)限不足無法創(chuàng)建文件夾解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • Python中字典常用操作的示例詳解

    Python中字典常用操作的示例詳解

    字典是Python必用且常用的數(shù)據(jù)結(jié)構(gòu),本文主要為大家梳理了一下常用的字典操作:初始化、合并字典、字典轉(zhuǎn)Pandas等,需要的可以參考一下
    2022-05-05

最新評論

利津县| 手游| 唐海县| 遂昌县| 辛集市| 鹤壁市| 抚顺市| 和静县| 德安县| 西青区| 乌拉特后旗| 利川市| 郴州市| 当阳市| 乌鲁木齐县| 唐河县| 仁寿县| 新宾| 万安县| 青川县| 鹤山市| 横峰县| 开江县| 金溪县| 宝丰县| 永和县| 平罗县| 华亭县| 桑日县| 永泰县| 牡丹江市| 延津县| 高阳县| 大埔区| 定安县| 威海市| 伽师县| 平昌县| 特克斯县| 铜梁县| 绍兴市|