08 登录博客发表评论_优化版本

本文详细介绍了如何优化博客的登录和评论功能,包括提高用户体验、增强安全性以及后台管理方面的改进,旨在打造更流畅、安全的交互环境。
摘要由CSDN通过智能技术生成
# Author:Nimo_Ding

'''
最终优化:
1、登录的时候自动调用cookies,就不用每次输入用户名和密码了。
2、如果程序能读取到cookies,就自动登录发表评论,如果读取不到,就重新输用户名密码登录后再评论。

cookies转化成字典的方法:
requests.utils.dict_from_cookoejar(cj)
cj:从中提取cookie的CookieJar对象
返回类型:字典

json模块使用方法:
json.dumps() # 将Python对象编码成Json字符串
json.loads() # 将json字符串解码成Python对象
'''
# 登录:
import requests
import json
session=requests.session()
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'
}

def cookies_read():
    # 读取cookies:
    # 字符串格式的cookies -> 通过json转成字典格式 -> 通过requests转成cookies原本的格式。
    cookies_txt=open('08cookies.txt','r')
    cookies_dict=json.loads(cookies_txt.read()) # 转成字典
    cookies=requests.utils.cookiejar_from_dict(cookies_dict) # 转成cookies本来的格式
    return(cookies)
    # 调用requests对象(session)的cookies属性

def sign_in():
    url = ' https://wordpress-edu-3autumn.localprod.oc.forchange.cn/wp-login.php'
    data = {
    'log':input('请输入账号:'),
    'pwd':input('请输入密码:'),
    'wp-submit': '登录',
    'redirect_to': 'https://wordpress-edu-3autumn.localprod.oc.forchange.cn',
    'testcookie': '1'
    }
    session.post(url,data=data,headers=headers)
    # 在创建的session下用post发起登录请求。

    # 保存cookies:
    # 把cookies转化成字典:
    cookies_dict=requests.utils.dict_from_cookiejar(session.cookies)

    # 调用json模块,把cookies再转成字符串
    cookies_str=json.dumps(cookies_dict) #
    f=open('08cookies.txt','w')  # 将cookies写入文件中
    f.write(cookies_str)
    f.close()

def write_message():
    # 开始评论:
    comment_url = 'https://wordpress-edu-3autumn.localprod.oc.forchange.cn/wp-comments-post.php'
    comment_data = {
    'comment': input('请输入评论:'),
    'submit': '发表评论',
    'comment_post_ID': 20,
    'comment_parent': 0,
    }
    return(session.post(comment_url,headers=headers,data=comment_data))

try:
    session.cookies=cookies_read()
except FileNotFoundError:
    sign_in()

num=write_message()
if num.status_code==200:
    print('已评论成功!')
else:
    sign_in()
    num=write_message()

'''
补充:
计算机之所以需要cookies和session,是因为HTTP协议是无状态的协议。
无状态:
    一旦浏览器和服务器之间的请求和响应完毕后,两者会立马断开连接,也就是恢复成无状态。这样就会导致
    服务器永远也无法记住用户的信息
cookies不仅实现了自动登录,因为它本身携带了session的编码信息,网站会根据cookies记录你的足迹推送符合你偏好的商品。

'''

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值