日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python3下使用requests实现模拟用户登录 —— 基础篇(马蜂窝)

發(fā)布時(shí)間:2023/12/10 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。