二、对上篇内容的封装


#参考代码
# -*- conding: utf -8 -*-
import requestsimport urllib3
import re
urllib3.disable_warnings()
s = requests.session()
class debug():
def __init__(self):
self.head = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Safari/537.36'
}
# 登录获取cookies(Fiddler抓的),更新cookies代替密码登录
def login(self, url, a , b):
c = requests.get(url, headers=self.head, verify=False,).cookies
c.set('.Cnblogs.AspNetCore.Cookies', a)
c.set('.CNBlogsCookie', b)
s.cookies.update(c)
print('你的cookies更新为%s'%s.cookies)
# 发布随笔
def publish(self, url2, title, body):
data = {
'__VIEWSTATE': '',
'__VIEWSTATEGENERATOR': 'FE27D343',
'Editor$Edit$Advanced$chkComments': 'on',
'Editor$Edit$Advanced$chkDisplayHomePage': 'on',
'Editor$Edit$Advanced$chkMainSyndication': 'on',
'Editor$Edit$Advanced$ckbPublished': 'on',
'Editor$Edit$Advanced$tbEnryPassword': '',
'Editor$Edit$Advanced$txbEntryName': '',
'Editor$Edit$Advanced$txbExcerpt': '',
'Editor$Edit$Advanced$txbTag': '',
'Editor$Edit$EditorBody': '<p>'+body+'</p>',
'Editor$Edit$lkbPost': '发布',
'Editor$Edit$txbTitle': title,
}
self.postid_list = s.post(url2, data=data, verify=False,).url
print('你的随笔已发布:', '\n', 'title:%s'%title, '\n', 'body:%s'%body)
return self.postid_list
# 取值postid,删除随笔
def delete(self, url3):
postid = re.findall(r"postid=(.+?)&", self.postid_list)
print('postid的值为:%s'%postid)
js = {'postID': postid[0]}
res = s.post(url3, json=js, verify=False)
print('随笔删除结果:%s'%res.json())
if __name__ == '__main__':
url = 'https://account.cnblogs.com/signin'
url2 = 'https://i.cnblogs.com/EditPosts.aspx?opt=1'
url3 = 'https://i.cnblogs.com/post/delete'
test = debug()
test.login(url, a=input('请输入您的.Cnblogs.AspNetCore.Cookies的value:'), b=input('请输入您的.CNBlogsCookie的value:'))
test.publish(url2, title=input('请输入你的随笔标题'), body=input('请输入你的随笔内容'))
test.delete(url3)

浙公网安备 33010602011771号