import requests
#禁用安全请求警告
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
"""
1.由于登录时候是多加 2 个 cookie,我们可以先用 get 方法打开登录首页,获取部分 cookie
2.再把登录需要的 cookie 添加到 session 里
3.添加成功后,随便编辑正文和标题保存到草稿箱
"""

def Blog_login(url,s):
# 先打开登录首页,获取部分 cookie
header = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36"
}

# s = requests.Session()
r = s.get(url,headers=header)
print(r.cookies)

# 添加登录需要的两个 cookie
c = requests.cookies.RequestsCookieJar()
c.set(".Cnblogs.AspNetCore.Cookies","自己抓取的cookie")
c.set(".CNBlogsCookie","自己抓取的cookie")
# c.set('AlwaysCreateItemsAsActive',"True")
# c.set('AdminCookieAlwaysExpandAdvanced',"True")
s.cookies.update(c)
print(s.cookies)
# return s.cookies

def save_box(s,url2,title,body_data):
# 登录成功后保存编辑内容
# r1 = s.get("https://i.cnblogs.com/EditPosts.aspx?opt=1", headers=Blog_login(s),verify=False)
# print(r1.text)

# 保存草稿箱
body = {
"__VIEWSTATE":"",
"__VIEWSTATEGENERATOR":"FE27D343",
"Editor$Edit$txbTitle":title,
"Editor$Edit$EditorBody":body_data,
"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(url2,data=body,verify=False)
# print(r.content.decode("utf-8"))
#获取当前的url地址
save_url = r2.url
print(save_url)
return save_url

def get_postid(u):
#正则获取需要的postid参数
import re
postid = re.findall(r"postid=(.*?)&",u)
print(postid) #正则提取的值是list
if len(postid)<1:
return ""
else:
return postid[0] #提取为字符串

def delete_box(s,url3,postid):
#删除草稿箱
form_json = {"postId":postid}
result = s.post(url3,json=form_json,verify=False)
print(result.json())

if __name__ == '__main__':
url = "https://account.cnblogs.com/signin?returnurl=https%3A%2F%2Fwww.cnblogs.com%2F"
s = requests.Session()
Blog_login(url,s)
url2 = "https://i.cnblogs.com/EditPosts.aspx?opt=1"
u = save_box(s,url2,"Hi,你们","Are you ok?")
postid = get_postid(u)
url3 = "https://i.cnblogs.com/post/delete"
delete_box(s,url3,postid)

最新文章

  1. SqlHelper c#
  2. Java for LeetCode 073 Set Matrix Zeroes
  3. DCDC(4.5V to 23V -3.3V)
  4. php部分--数组(包含指针思想遍历数组);
  5. 201. Segment Tree Build
  6. 深入理解计算机系统第二版习题解答CSAPP 2.15
  7. Linux系统编程(37)—— socket编程之UDP服务器与客户端
  8. sass基本语法
  9. C语言中给数组赋随机值
  10. 使用block实现两个页面之间的传统价值观
  11. [转载]linux下编译php中configure参数具体含义
  12. sql相关
  13. Bellman-Ford&amp;&amp;SPFA
  14. php 将一个或多个二维数组组合成一个二维数组并根据某个字段排序排序
  15. OC字典的使用
  16. SQL注入之Sqli-labs系列第二十四关(二阶注入)
  17. [RTC]系统和RTC的时间保持一致
  18. 如何查看机器是否为vmware虚拟机
  19. 【转】DNS查询过程
  20. Fat URLs Client Identification

热门文章

  1. TensorRT宏碁自建云(BYOC, BuildYourOwnCloud)上集成
  2. python_selenium_键盘事件
  3. 基于Android平台的图书管理系统的制作(3)
  4. 【NX二次开发】Block UI 选择小平面区域
  5. 5000字长文,kurryluo 的自学编程之路
  6. 懒人 IDEA 插件推荐:EasyCode 一键帮你生成所需代码
  7. alert日志报错:ERROR: failed to establish dependency between database RACDB and diskgroup resource ora.DATA.dg
  8. 给STM32MP157C-DK2烧录固件
  9. 创建Akamai CDN
  10. 堆和栈的内存分布&amp;一些关于内存泄露、栈溢出和野指针的内容(头秃