python3下使用requests实现模拟用户登录 —— 基础篇(马蜂窝)
生活随笔
收集整理的這篇文章主要介紹了
python3下使用requests实现模拟用户登录 —— 基础篇(马蜂窝)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
我是從這篇博客中(https://blog.csdn.net/zwq912318834/article/details/79571110)了解的一點(diǎn)基礎(chǔ)東西,代碼都是從這篇博客里面的源代碼直接復(fù)制過去測試和學(xué)習(xí)的。
遇到的問題:
1、返回狀態(tài)碼:502——百度得知這是一個(gè)反爬蟲的狀態(tài)碼,原博主是寫于2018年3月份,我測試是在2020年2月份,說明馬蜂窩已經(jīng)做了反爬蟲的策略,由于自己這方面不夠火候,沒有繼續(xù)追究,因此繼續(xù)測試和學(xué)習(xí)其他的東西
2、博客里面的幾個(gè)鏈接是怎么獲得的?
- https://passport.mafengwo.cn/login/————這個(gè)鏈接,博客里面開始就寫的很明白了
- http://www.mafengwo.cn/plan/route.php————這個(gè)鏈接是登錄成功后才能打開的其中一個(gè)頁面,自己可以選擇頁面,頁面的鏈接就從地址欄獲得,是為了測試爬蟲程序模擬登錄的時(shí)候是否成功的,如果說程序請(qǐng)求這個(gè)頁面返回狀態(tài)碼200,則成功,否則失敗
- http://www.mafengwo.cn/plan/fav_type.php————這個(gè)鏈接登錄成功后的跳轉(zhuǎn)鏈接,即當(dāng)已經(jīng)登錄過,有cookies的時(shí)候,就可以直接打開,目的是程序中獲得的cookies還有效,返回狀態(tài)碼200,即模擬登錄成功
3、cookies是怎么獲得和保存的?火候不夠,主要百度了這個(gè)對(duì)象而了解一二:
cookielib.LWPCookieJar(filename = "mafengwoCookies.txt"),這段程序是把cookies保存到項(xiàng)目目錄下,名字叫mafengwoCookies的文件4、cookies怎么獲得和保存?程序如下圖位置
5、原博主的最終程序有個(gè)小bug,當(dāng)刪除了這個(gè)cookies文件后,運(yùn)行博主的最終程序會(huì)報(bào)錯(cuò)
原因是入口程序的邏輯問題
原入口程序
if __name__ == "__main__":# 第一步:嘗試使用已有的cookie登錄mafengwoSession.cookies.load()isLogin = isLoginStatus()print(f"is login mafengwo = {isLogin}")if isLogin == False:# 第二步:如果cookie已經(jīng)失效了,那就嘗試用帳號(hào)登錄print(f"cookie失效,用戶重新登錄...")mafengwoLogin("13798233592", "Aa1111111")resp = mafengwoSession.get("http://www.mafengwo.cn/plan/fav_type.php", headers = header, allow_redirects = False)print(f"resp.status = {resp.status_code}")修改后的入口程序
if __name__ == "__main__":# 第一步:嘗試使用已有的cookie登錄try:mafengwoSession.cookies.load()except:print(f"本地沒有cookies文件,重新獲取中...")isLogin = isLoginStatus()print(f"is login mafengwo = {isLogin}")if isLogin == False:# 第二步:如果cookie已經(jīng)失效了,那就嘗試用帳號(hào)登錄print(f"cookie失效,用戶重新登錄...")mafengwoLogin("13798233592", "Aa1111111")resp = mafengwoSession.get("http://www.mafengwo.cn/plan/fav_type.php", headers = header, allow_redirects = False)print(f"resp.status = {resp.status_code}")至此,Python利用requests模塊模擬登錄測試完成,獲得了一點(diǎn)基礎(chǔ)入門的小知識(shí)吧
總結(jié)
以上是生活随笔為你收集整理的python3下使用requests实现模拟用户登录 —— 基础篇(马蜂窝)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第一部分 Java:面向对象理解
- 下一篇: python将图片转换成二进制文本逻辑_