【2021-10-13】某瓜三方平台-自动化模拟登陆

提前声明:该专栏涉及的所有案例均为学习使用,如有侵权,请联系本人删帖!

一、前言

在前面的文章中,我们直接筛入cookie登录网站来请求网站内容,那么这次我们通过代码自动实现网站的模拟登陆过程。实际上自动化登录,也是一个或多个数据包顺序请求校验的过程。

网站:

aHR0cDovL3d3dy5xaWFuLWd1YS5jb20vP2NobD1iYWlkdS1xaWFuZ3VhY2ktcGlucGFpY2k=

二、网站分析

点击登录。打开F12进行抓包,将日志勾选(防止进入页面,包消失)

在这里插入图片描述

输入一个错误的手机号和密码,抓包

在这里插入图片描述

在这里插入图片描述

  • 然后输入正确的账号和密码,会返回一个登录成功的cookie

在这里插入图片描述

看到这里,我们可以得到结论。输入一个正确的手机号和密码,然后post提交到该网址,登录成功后服务器下发cookie。

三、代码编写思路

首先,我们模拟登陆post请求的代码,在post请求的时候,我们已经看到一个cookie,该cookie可以固定

在这里插入图片描述

然后进入一个页面,携带该cookie,捕获信息

在这里插入图片描述

四、完整代码

# -*- coding: utf-8 -*-
import time
import requests


class Login():
    def __init__(self):
        self.cookie = '_data_chl=key=baidu-qianguaci-pinpaici; ASP.NET_SessionId=ug4rm3gewgv3gqeywbio2pur; Hm_lvt_c6d9cdbaf0b464645ff2ee32a71ea1ae=1634095315,1634095315,1634095502; Hm_lpvt_c6d9cdbaf0b464645ff2ee32a71ea1ae=1634095975;'

    def login(self):
        """模拟登陆,生成新cookie"""
        url = 'http://api.qian-gua.com//Login/Login'
        headers = {
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3877.400 QQBrowser/10.8.4506.400',
            'cookie': self.cookie
        }
        data = {
            'pwd': "密码",
            'tel': "手机号"
        }
        response = requests.post(url, headers=headers, data=data)
        if response.json()['Code'] == 200:
            print('登录成功')
            cookie_User = response.cookies.get("User")
            self.cookie += 'User={}'.format(cookie_User)
        else:
            print('登录失败')

    def check_cookie(self):
        """校验cookie是否有效"""
        while True:
            url = 'http://api.qian-gua.com/Rank/GetBloggerRank?pageSize=50&pageIndex=1&dateCode=20210518&period=1&originRankType=12&rankType=2&tagId=0'
            headers = {
                'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3877.400 QQBrowser/10.8.4506.400',
                "cookie": self.cookie
            }
            response = requests.get(url, headers=headers)
            print(response.text)
            if response.json()['Code'] == 401:
                print('重新开始登录')
                self.login()
            else:
                print('cookie有效')
                time.sleep(1000)


if __name__ == '__main__':
    l = Login()
    l.check_cookie()

在这里插入图片描述

成功,第一次cookie不可用,然后触发模拟登陆!然后携带登陆成功的cookie成功返回结果!

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张烫麻辣亮。

谢谢老板支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值