前兩天寫過一個關於session的博客,session登陸事後,能夠進行一系列的操做,今天經過模擬登陸博客園,自動寫博客cookie
咱們先理下書寫的思路:session
1.經過request訪問博客園;post
2.經過session保存cookies;url
3.攜帶保存的cookies進行請求寫博客的接口spa
4.編寫博客內容,進行保存,發博客code
1.經過fiddler\F12進行抓取未登陸的cookies值blog
2.再次抓取Fiddler\F12進行抓取登陸後的cookies值接口
3.把cookies放到session中utf-8
# coding:utf-8 import requests import urllib3 from bs4 import BeautifulSoup urllib3.disable_warnings() s = requests.session() s.verify = False # 全局的 url = 'https://passport.cnblogs.com/user/signin' headers = { "User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36" } r = s.get(url,headers=headers) cooks = { ".Cnblogs.AspNetCore.Cookies":"XXXXXXXX", ".CNBlogsCookie":"XXXXXX" } c = requests.cookies.RequestsCookieJar() c.set(".CNBlogsCookie", cooks[".CNBlogsCookie"]) # 登錄有效的cookies c.set(".Cnblogs.AspNetCore.Cookies", cooks[".Cnblogs.AspNetCore.Cookies"]) s.cookies.update(c) url1 = "https://i.cnblogs.com/EditPosts.aspx?opt=1" r1 = s.get(url1) if "博客後臺管理" in r1.text: print("登陸成功!")
1.抓取編寫博客接口,獲取編寫內容,查看Raw獲取接口內容get
2.把這些值經過字典的形式進行編寫如:{「name」:「value」}
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$txbTag":"", "Editor$Edit$Advanced$tbEnryPassword":"", "Editor$Edit$lkbDraft":"存爲草稿" }
1.從新編寫草稿內容,而後經過session進行從新發帖(草稿內容部分進行了改變,方便區分)
# coding:utf-8 import requests import urllib3 from bs4 import BeautifulSoup urllib3.disable_warnings() s = requests.session() s.verify = False # 全局的 url = 'https://passport.cnblogs.com/user/signin' headers = { "User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36" } r = s.get(url,headers=headers) cooks = { ".Cnblogs.AspNetCore.Cookies":"XXXXXXXXX", ".CNBlogsCookie":"XXXXXX" } c = requests.cookies.RequestsCookieJar() c.set(".CNBlogsCookie", cooks[".CNBlogsCookie"]) # 登錄有效的cookies c.set(".Cnblogs.AspNetCore.Cookies", cooks[".Cnblogs.AspNetCore.Cookies"]) s.cookies.update(c) url1 = "https://i.cnblogs.com/EditPosts.aspx?opt=1" r1 = s.get(url1) if "博客後臺管理" in r1.text: print("登陸成功!") 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$txbTag":"", "Editor$Edit$Advanced$tbEnryPassword":"", "Editor$Edit$lkbDraft":"存爲草稿" } # 請求保存草稿接口 r2 = s.post(url1,headers=headers,data=body)
2.發送請求後經過查看博客園的草稿箱查看是否保存成功
喜歡的朋友們,能夠手動試試,好記性不如賴筆頭;
若是感受寫的對您有幫助,能夠點個關注哦