python接口自动化3-自动发帖(session)
一、session簡介
1.查看幫助文檔,貼了一部分,后面省略了
>>import requests
>>help(requests.session())
class Session(SessionRedirectMixin)
?|? A Requests session.
?| ?
?|? Provides cookie persistence, connection-pooling, and configuration.
?| ?
?|? Basic Usage::
?| ?
?|??? >>> import requests
?|??? >>> s = requests.Session()
?|??? >>> s.get('http://httpbin.org/get')
?|??? <Response [200]>
?| ?
?|? Or as a context manager::
?| ?
?|??? >>> with requests.Session() as s:
?|??? >>>???? s.get('http://httpbin.org/get')
?|??? <Response [200]>
?
二、使用session登錄
1.使用session登錄只需在上一篇基礎上稍做修改
# coding:utf-8
import requests
url = "https://passport.cnblogs.com/user/signin"
headers = {
????????????????? 頭部信息已省略
?????????????????? }
payload = {"input1":"xxx",
????????? ? ? ? "input2":"xxx",
??????????????? "remember":True}
# r = requests.post(url, json=payload, headers=headers,verify=False)
# 修改后如下
s = requests.session()
r = s.post(url, json=payload, headers=headers,verify=False)
print r.json()
三、保存編輯
1.先打開我的隨筆,手動輸入內容后,打開fiddler抓包
2.把body的參數內容寫成字典格式,有幾個空的參數不是必填的,可以去掉
body = {"__VIEWSTATE": "",
??????? "__VIEWSTATEGENERATOR":"FE27D343",
??????? "Editor$Edit$txbTitle":"這是我的標題:上海-悠悠",
??????? "Editor$Edit$EditorBody":"<p>這里是中文內容:http://www.cnblogs.com/yoyoketang/</p>",
??????? "Editor$Edit$Advanced$ckbPublished":"on",
??????? "Editor$Edit$Advanced$chkDisplayHomePage":"on",
??????? "Editor$Edit$Advanced$chkComments":"on",
??????? "Editor$Edit$Advanced$chkMainSyndication":"on",
??????? "Editor$Edit$lkbDraft":"存為草稿",
???????? }
3.用上面的session繼續發送post請求
4.執行后,查看我的草稿箱就多了一條新增的了
?
四、參考代碼
?# coding:utf-8
import requests
# 先打開登錄首頁,獲取部分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"
?????????? }? # get方法其它加個ser-Agent就可以了
s = requests.session()
r = s.get(url, headers=headers,verify=False)
print s.cookies
# 添加登錄需要的兩個cookie
c = requests.cookies.RequestsCookieJar()
c.set('.CNBlogsCookie', '這里是抓到的')? # 填上面抓包內容
c.set('.Cnblogs.AspNetCore.Cookies','這里是抓到的')? # 填上面抓包內容
c.set('AlwaysCreateItemsAsActive',"True")
c.set('AdminCookieAlwaysExpandAdvanced',"True")
s.cookies.update(c)
print s.cookies
# 登錄成功后保存編輯內容
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":"這是3111",
??????? "Editor$Edit$EditorBody":"<p>這里111:http://www.cnblogs.com/yoyoketang/</p>",
??????? "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
?
總結
以上是生活随笔為你收集整理的python接口自动化3-自动发帖(session)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信公众号申请需要哪些材料
- 下一篇: 计算机笔记检讨,没做笔记检讨书