【Python技能树共建】Python爬虫模拟登录
Python 爬蟲模擬登錄
Python 爬蟲模擬登錄是使用腳本實(shí)現(xiàn)自動(dòng)登錄,部分站點(diǎn)需要逆向加密邏輯,更多的站點(diǎn)會(huì)采用驗(yàn)證碼進(jìn)行鑒權(quán)驗(yàn)證。
本文為大家?guī)?lái)最簡(jiǎn)單的登錄,其核心用到的是 requests 模擬 POST 請(qǐng)求。
本次練習(xí)使用的站點(diǎn)是 https://www.lanqiao.cn/,可以提前注冊(cè)一個(gè)賬號(hào)。
因該站點(diǎn)無(wú)驗(yàn)證碼,所以不需要解決驗(yàn)證碼邏輯。
怎么用
上手案例
通過(guò)瀏覽器的開(kāi)發(fā)者工具,抓取登錄操作的請(qǐng)求地址和參數(shù)邏輯,得到下述信息。
- 請(qǐng)求網(wǎng)址: https://passport.lanqiao.cn/api/v1/login/?auth_type=login&redirect_url=https:%2F%2Fwww.lanqiao.cn%2F
- 請(qǐng)求方法: POST
請(qǐng)求參數(shù)如下所示:
{ "password": "密碼", "login_str": "賬號(hào)", "usertype": 0 }基于上述內(nèi)容,使用 requests 模塊復(fù)現(xiàn)其代碼邏輯即可。
import jsonimport requestsheaders = {"content-type": "application/json","user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36", } my_data = {"password": "你的密碼", "login_str": "你的賬號(hào)", "usertype": 0}params = json.dumps(my_data)res = requests.post('https://passport.lanqiao.cn/api/v1/login/?auth_type=login&redirect_url=https:%2F%2Fwww.lanqiao.cn%2F',headers=headers, data=params)print(res.cookies) print(res.text)運(yùn)行代碼之后,得到跳轉(zhuǎn)鏈接和登錄之后的用戶 cookie,這兩個(gè)信息很重要,保存在本地可以對(duì)接后續(xù)操作。
所有的模擬登錄,最終都是為了獲取用戶登錄之后的標(biāo)識(shí)字符串,可能為 cookie,也可能為更加復(fù)雜一些的,例如 Authorization (服務(wù)器 OAUTH2 生成的參數(shù))
擴(kuò)展場(chǎng)景
很多時(shí)候,我們的爬蟲模擬登錄都是用的自建 cookie 池,你可以順著這個(gè)思路學(xué)習(xí)。
總結(jié)
以上是生活随笔為你收集整理的【Python技能树共建】Python爬虫模拟登录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Hive SQL迁移 Spark SQL
- 下一篇: python安装出错0x80072ee7