python用戶登錄(輸入用戶名和密碼),python接口自動化登錄后保存個人簡介_python接口自動化三(登錄及發帖)

 2023-12-25 阅读 26 评论 0

摘要:前言有些登錄的接口會有驗證碼:短信驗證碼,圖形驗證碼等,這種登錄的話驗證碼參數可以從后臺獲取的(或者查數據庫最直接)。獲取不到也沒關系,可以通過添加cookie的方式繞過驗證碼。python用戶登錄(輸入用戶名和密碼)、但是這里需要明確一點,

前言

有些登錄的接口會有驗證碼:短信驗證碼,圖形驗證碼等,這種登錄的話驗證碼參數可以從后臺獲取的(或者查數據庫最直接)。

獲取不到也沒關系,可以通過添加cookie的方式繞過驗證碼。

python用戶登錄(輸入用戶名和密碼)、但是這里需要明確一點,驗證碼本就是為了防止用戶自動化的,如果可以的話可以直接讓開發給個萬能驗證碼,沒必要在驗證碼這里浪費時間。

一、抓登錄cookie

1.登錄后會生成一個已登錄狀態的cookie,那么只需要直接把這個值添加到cookies里面就可以了。

2.可以先手動登錄一次,然后抓取這個cookie,這里就需要用抓包工具fiddler了

python編寫用戶登錄系統,3.先打開博客園登錄界面,手動輸入賬號和密碼(勾選下次自動登錄)

4.打開fiddler抓包工具,刷新下登錄首頁,就是登錄前的cookie了

5.登錄成功后,再查看cookie變化,發現多了兩組參數,多的這兩組參數就是我們想要的,copy出來,一會有用

二、cookie的結構

python api接口開發。1.用抓包工具fidller只能看到cookie的name和value兩個參數,實際上cookie還有其它參數

2.以下是一個完整的cookie組成結構

cookie ={u'domain': u'.cnblogs.com',

u'name': u'.CNBlogsCookie',

python怎么自動化錄入數據。u'value': u'xxxx',

u'expiry': 1491887887,

u'path': u'/',

u'httpOnly': True,

u'secure': False}

name:cookie的名稱

value:cookie對應的值,動態生成的

domain:服務器域名

expiry:Cookie有效終止日期

path:Path屬性定義了Web服務器上哪些路徑下的頁面可獲取服務器設置的Cookie

httpOnly:防腳本攻擊

secure:在Cookie中標記該變量,表明只有當瀏覽器和Web Server之間的通信協議為加密認證協議時,

瀏覽器才向服務器提交相應的Cookie。當前這種協議只有一種,即為HTTPS。

三、添加cookie

1.往session里面添加cookie可以用以下方式

2.set里面參數按括號里面的參數格式

coo =requests.cookies.RequestsCookieJar()

coo.set('cookie-name', 'cookie-value', path='/', domain='.xxx.com')

s.cookies.update(coo)

3.于是添加登錄的cookie,把第一步fiddler抓到的內容填進去就可以了

c =requests.cookies.RequestsCookieJar()

c.set('.CNBlogsCookie', '抓取的cookie')

c.set('.Cnblogs.AspNetCore.Cookies','抓取的cookie')

s.cookies.update(c)print(s.cookies)

四、添加新隨筆

抓取發帖的cookie

編輯自己想要輸入的內容

五、參考代碼

#coding:utf-8

importrequestsimporturllib3

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)#這行是預防報錯寫的#先打開登錄首頁,獲取部分cookie

url = "https://passport.cnblogs.com/user/signin"headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"}

s=requests.session()

r= s.get(url, headers=headers, verify=False)print(s.cookies)#添加登錄需要的兩個cookie

c =requests.cookies.RequestsCookieJar()

c.set('.CNBlogsCookie', '填上面抓到的cookie') #填上面抓包內容

c.set('.Cnblogs.AspNetCore.Cookies', '填上面抓到的cookie') #填上面抓包內容

s.cookies.update(c)print(s.cookies)print(r.text)#登錄成功后保存編輯內容

r1 = s.get("https://i.cnblogs.com/EditPosts.aspx?opt=1", headers=headers, verify=False)#保存草稿箱

url2 = "https://i.cnblogs.com/EditPosts.aspx?opt=1"body= {"__VIEWSTATE": "","__VIEWSTATEGENERATOR": "FE27D343","Editor$Edit$txbTitle": "這是測試標題","Editor$Edit$EditorBody": "

這里是測試正文","Editor$Edit$Advanced$ckbPublished": "on","Editor$Edit$Advanced$chkDisplayHomePage": "on","Editor$Edit$Advanced$chkComments": "on","Editor$Edit$Advanced$chkMainSyndication": "on","Editor$Edit$Advanced$txbEntryName": "","Editor$Edit$Advanced$txbExcerpt": "","Editor$Edit$Advanced$tbEnryPassword": "","Editor$Edit$lkbDraft": "存為草稿",

}

r2= s.post(url2, data=body, verify=False)print(r.content.decode())

執行之后就會保存新的隨筆草稿

參考鏈接:https://www.cnblogs.com/yoyoketang/p/6833355.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/194620.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息