使用session获取, cookie并使用它进行登录评论,以开课吧为例。

引入我们要使用的包

# _*_ coding:utf-8 _*_
# coding = utf-8
import json
import requests.utils
#改变输出端口
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='gb18030')

接下来代码中开头没有封装成函数的都是全局变量,当然你也可以使用python中的类来进行修改,

下面的代码是使用session来进行登录并获取cookie

#下面没有封装成函数的都是全局变量
headers = {
        "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 Edg/92.0.902.67"
    }
session = requests.session()

def pre_kkb_login():
    """
    这个函数是拿到登录时的网站并且拿取到cookie,
    方便我们在后面进行登录
    :return:
    """
    pre_login_url = "https://xiaoke.kaikeba.com/example/wordpress/wp-login.php"
    from_data = {
        "log": "****",  # 登录账号
        "pwd": "*****",  # 登录密码
        "wp-submit": "登录",
        "testcookie": "1",

    }

    pre_login_in_re = session.post(url=pre_login_url, headers=headers, data=from_data)
    cookie = pre_login_in_re.cookies
    print(cookie)
    return cookie

我们使用将得到的cookie进行保存,在评论时我们使用已经保存的cookie来进行登录并评论

def save_cookie():
    """
    这个函数是用来保存cookie的
    方便我们接下来使用保存的cookie来进行登录
    :return:
    """
    file_cookie = pre_kkb_login()

    #将cookie转化为字典
    cookie_dict = requests.utils.dict_from_cookiejar(file_cookie)

    #将cookie字典转化字符串存储
    cookie_str = json.dumps(cookie_dict)
    with open("file_cookie.txt", "w", newline="") as f:
        f.write(cookie_str)

def read_cookie():
    """
    怎么读取我们已经保存的cookie

    """
    file_cookie = open("file_cookie.txt", "r")

    #调用json模块中的loads函数, 把字符串转化为字典
    cookie_dict = json.loads(file_cookie.read())

    #将字典转化为cookie原本的格式
    cookie = requests.utils.dict_from_cookiejar(cookie_dict)
    session.cookies = cookie

    return session.cookies


def commnet():
    """
    使用我们读取的cookie进行评论
    但是这里我们是从已保存的cookie中读取cookie
    :return:
    """
    try:

        cookie = save_cookie()
        comment_url = "https://xiaoke.kaikeba.com/example/wordpress/wp-comments-post.php"
        comment_data = {
            'comment': "恭喜你,成功了",
            'submit': '发表评论',
            'comment_post_ID': '35',
            'comment_parent': '0'
        }
        comment_login = session.post(url=comment_url, headers= headers, data=comment_data, cookies=cookie)
        # print(comment_login.status_code)

    except:
        print("error")

    return 0



if __name__ == '__main__':
    save_cookie()
    commnet()

部分代码来源与开课吧!如有错误,还望各位大佬指正。谢谢

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值