前两天写过一个关于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.发送请求后经过查看博客园的草稿箱查看是否保存成功
喜欢的朋友们,能够手动试试,好记性不如赖笔头;
若是感受写的对您有帮助,能够点个关注哦