『python爬虫』requests实战-comicai绘画ai通过cookie签到(保姆级图文)

目录

    • 实现效果
    • 实现思路
      • 登录
      • 查询积分数量
      • 签到
    • 实现代码
    • 总结


欢迎关注 『python爬虫』 专栏,持续更新中
欢迎关注 『python爬虫』 专栏,持续更新中

实现效果

在这里插入图片描述


实现思路

登录

f12 打开控制台,进入网络清除所有信息后点击登录按钮
在这里插入图片描述
通过搜索login(通用写法)/你自己的用户名密码(有些网页没有加密用户名密码的情况),得到了cookie
在这里插入图片描述

    headers = {'cookie': 'xxxxxxxxxx','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.70 Safari/537.36'}session = requests.session()# 1.登录login_url = 'https://comicai.ai/signin'  # 登录urlrep = session.get(url=login_url, headers=headers)  # rep是返回的网页源码# 检查响应状态码if rep.status_code == 200:# 获取文本格式的响应数据data_text = rep.text# print("rep-文本格式数据:", data_text) #<Response [200]>else:print("请求失败")

查询积分数量

  • 进行分析.我们看到一个积分在这里插入图片描述
  • 右键查看网页源码,发现找不到1494,显然数据要靠请求得到,不是写在网页里的,积分显然是在网页加载好后就出现了,我们f5刷新网页,抓包获取积分的请求,得知了mana表示积分1494的数值也对得上.
    在这里插入图片描述
  • 得到了请求网址
    check_mark_url = 'https://api.comicai.ai/api/v1/user/info'

在这里插入图片描述

  • 得到了请求标头
    在这里插入图片描述
    # 2.查看分数check_mark_url = 'https://api.comicai.ai/api/v1/user/info'headers = {'Accept': 'application/json, text/plain, */*','Cache-Control': 'no-cache','Origin': 'https://comicai.ai','Referer': 'https://comicai.ai/dashboard','Sec-Fetch-Dest': 'empty','Sec-Fetch-Mode': 'cors','Sec-Fetch-Site': 'same-site','Token': 'xxxxxxxxxxxxxxxx',#没有Token 会导致{"code":"AUTH_FAILED","message":"auth failed"}{'code': 'AUTH_FAILED', 'message': 'auth failed'}'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.70 Safari/537.36'}mark_rep = requests.get(check_mark_url, headers=headers)if mark_rep.status_code == 200:# 请求成功# 获取文本格式的响应数据# data_text = mark_rep.text# print("mark_rep-文本格式数据:{}".format(data_text) ) #<Response [200]>data_json = mark_rep.json()print("data_json-文本格式数据:{}".format(data_json))asset_mana = data_json['data']['asset']['mana']print("asset_mana-签到前的积分数:{}".format(asset_mana))else:# 请求失败print(f"签到前查询积分失败,状态码:{mark_rep.status_code}")

签到

准备抓包
在这里插入图片描述

  • 在我们完成签到后,搜索签到后的积分数1495可得到 sign是我们完成签到的请求
    在这里插入图片描述
  • 得到请求url
sign_url = "https://api.comicai.ai/api/v1/user/sign"

在这里插入图片描述

  • 得到请求标头,装进header,这里要注意,这么多的请求标头,哪些参数是必须关键的呢?一个个试探,你删掉一个,看看能不能请求成功,最后发现"Content-Type","Token","User-Agent"不可缺少,如果缺少了"Content-Type",遇到报错,其中涉及的问题可参考[请求失败返回 ‘message‘: ‘unregister Content-Type: ]

  • 缺少了"Content-Type"
    在这里插入图片描述

    headers = {"Content-Type": "application/json", #如果注释了本行代码 请求失败 {'code': 'CODEC', 'message': 'unregister Content-Type: '}"Token": "xxxxxxxxxxxxxxxxxxxxxxx","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari/537.36"}data = "{}"response = requests.post(sign_url, headers=headers, data=data)
  • 签到时还要记得处理已经签到过的情况,你在签到过的情况下再次请求可得返回的code 值为 USER_REPEAT_SIGN
    # 3.签到sign_url = "https://api.comicai.ai/api/v1/user/sign"headers = {"Content-Type": "application/json", #如果注释了本行代码 请求失败 {'code': 'CODEC', 'message': 'unregister Content-Type: '}"Token": "xxxxxxxxxxxxxxxxxx","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari/537.36"}data = "{}"response = requests.post(sign_url, headers=headers, data=data)if response.status_code == 200:result = json.loads(response.text)if result.get("code") == "Success":mana = result["data"]["asset"]["mana"]print(f"签到成功,签到后得到的积分数 mana 值为: {mana}")elif result.get("code") == "USER_REPEAT_SIGN":print(f"今天已经签到过了,退出")else:print("请求失败")print(result)else:print(f"请求出错,错误码: {response.status_code}")

实现代码

import json
import requestsdef dailyTask():headers = {'cookie': 'xxxxxxx','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.70 Safari/537.36'}session = requests.session()# 1.登录login_url = 'https://comicai.ai/signin'  # 登录urlrep = session.get(url=login_url, headers=headers)  # rep是返回的网页源码# 检查响应状态码if rep.status_code == 200:# 获取文本格式的响应数据data_text = rep.text# print("rep-文本格式数据:", data_text) #<Response [200]>else:print("请求失败")# 2.查看分数check_mark_url = 'https://api.comicai.ai/api/v1/user/info'headers = {'Accept': 'application/json, text/plain, */*','Cache-Control': 'no-cache','Origin': 'https://comicai.ai','Referer': 'https://comicai.ai/dashboard','Sec-Fetch-Dest': 'empty','Sec-Fetch-Mode': 'cors','Sec-Fetch-Site': 'same-site','Token': 'xxxxxxxxxxxxxxxxx',#没有Token 会导致{"code":"AUTH_FAILED","message":"auth failed"}{'code': 'AUTH_FAILED', 'message': 'auth failed'}'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.70 Safari/537.36'}mark_rep = requests.get(check_mark_url, headers=headers)if mark_rep.status_code == 200:# 请求成功# 获取文本格式的响应数据# data_text = mark_rep.text# print("mark_rep-文本格式数据:{}".format(data_text) ) #<Response [200]>data_json = mark_rep.json()print("data_json-文本格式数据:{}".format(data_json))asset_mana = data_json['data']['asset']['mana']print("asset_mana-签到前的积分数:{}".format(asset_mana))else:# 请求失败print(f"签到前查询积分失败,状态码:{mark_rep.status_code}")# 3.签到sign_url = "https://api.comicai.ai/api/v1/user/sign"headers = {"Content-Type": "application/json", #如果注释了本行代码 请求失败 {'code': 'CODEC', 'message': 'unregister Content-Type: '}"Token": "xxxxxxxxxxxxxx","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari/537.36"}data = "{}"response = requests.post(sign_url, headers=headers, data=data)if response.status_code == 200:result = json.loads(response.text)if result.get("code") == "Success":mana = result["data"]["asset"]["mana"]print(f"签到成功,签到后得到的积分数 mana 值为: {mana}")elif result.get("code") == "USER_REPEAT_SIGN":print(f"今天已经签到过了,退出")else:print("请求失败")print(result)else:print(f"请求出错,错误码: {response.status_code}")if __name__ == '__main__':dailyTask()print("执行完毕~")

总结

大家喜欢的话,给个👍,点个关注!给大家分享更多计算机专业学生的求学之路!

版权声明:

发现你走远了@mzh原创作品,转载必须标注原文链接

Copyright 2023 mzh

Crated:2023-3-1

欢迎关注 『python爬虫』 专栏,持续更新中
欢迎关注 『python爬虫』 专栏,持续更新中
『未完待续』


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/729172.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用云手机进行舆情监测有什么作用?

在信息爆炸的时代&#xff0c;舆情监测成为企业和政府决策的重要工具。通过结合云手机技术&#xff0c;舆情监测系统在品牌形象维护、市场竞争、产品研发、政府管理以及市场营销等方面发挥着关键作用&#xff0c;为用户提供更智能、高效的舆情解决方案。 1. 品牌形象维护与危机…

【动态规划基础与刷题】

注意 自行复制链接去进行刷题&#xff0c;因为平台的跳转功能太差。 https://www.acwing.com/problem/content/823/ https://www.acwing.com/solution/content/135651/ f1 普通的递归 #include <bits/stdc.h> // 2024-03-04 Come on ! using namespace std; #de…

F1-score模型评估

什么是F1-score F1-score 是一种用于衡量分类模型性能的指标&#xff0c;它综合了精确度&#xff08;Precision&#xff09;和召回率&#xff08;Recall&#xff09;两个指标。F1-score 的值在 0 和 1 之间&#xff0c;值越接近 1&#xff0c;表示模型的性能越好。在文本分类任…

Vue.js+SpringBoot开发农村物流配送系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统登录、注册界面2.2 系统功能2.2.1 快递信息管理&#xff1a;2.2.2 位置信息管理&#xff1a;2.2.3 配送人员分配&#xff1a;2.2.4 路线规划&#xff1a;2.2.5 个人中心&#xff1a;2.2.6 退换快递处理&#xff1a;…

用科技打造优质内容,柠檬微趣荣获“首都文明单位”称号

近日&#xff0c;北京召开了首都精神文明建设工作大会&#xff0c;会上宣读了首都精神文明建设先进评选结果。首都文明委决定授予951家单位“首都文明单位”称号。北京市公安局西城分局、中国印刷有限公司、北京柠檬微趣科技股份有限公司等61家西城区单位获此殊荣。 据了解&am…

测试一下 Anthropic 宣称超过 GPT-4 的 Claude 3 Opus

测试一下 Anthropic 宣称超过 GPT-4 的 Claude 3 Opus 0. 引言1. 测试 Claude 3 Opus 0. 引言 今天测试一下 Anthropic 发布的 Claude 3 Opus。 3月4日&#xff0c;Anthropic 宣布推出 Claude 3 型号系列&#xff0c;该系列在广泛的认知任务中树立了新的行业基准。该系列包括…

【GoEnhance AI】高质量视频转动画,无卡顿——登录和使用:详细指南!

GoEnhance 关于GoEnhance登录GoEnhance1. 从Web浏览器访问GoEnhance2. 点击“Log in”。3. 选择登录方式4. 登录成功 使用GoEnhance1. 视频转动画1.1 上传想要转换的视频1.2 设置参数1.3 点击“GENERATE”生成视频1.4 结果查看和视频下载 2. 进行图像增强和升级2.1 上传图片2.2…

『 Linux 』Process Control进程控制(万字)

文章目录 &#x1f996; 前言&#x1f996; fork()函数调用失败原因&#x1f996; 进程终止&#x1f4a5; 进程退出码&#x1f4a5; 进程正常退出 &#x1f996; 进程等待&#x1f4a5; 僵尸进程&#x1f4a5; 如何解决僵尸进程的内存泄漏问题&#x1f4a5; wait( )/waitpid( )…

1748页CTF竞赛入门指南,有点牛!

CTF是一种针对信息安全领域的经济性挑战&#xff0c;旨在通过解决一系列的难题来寻找隐藏的“flag”。CTF比赛战队一般是以高校、科研单位、企业、信息安全从业者或社会团体组成。对于网安爱好者及从业者来说&#xff0c;拥有“CTF参赛经验”也是求职中的加分项。 前几天分享的…

【“双碳”目标】Acrel-2000Z分布式光伏发电监测系统解决方案

1 概述 “十四五”期间&#xff0c;随着“双碳”目标提出及逐步落实&#xff0c;本就呈现出较好发展势头的分布式光伏发展有望大幅提速。就“十四五”光伏发展规划&#xff0c;国家发改委能源研究所可再生能源发展中心副主任陶冶表示&#xff0c;“双碳”目标意味着国家产业结…

基于React的低代码开发:探索应用构建的新模式

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-OywB1Epu30PrvOJQ {font-family:"trebuchet ms",verdana,arial,sans-serif;f…

基于UDP实现直播间聊天的功能

需求&#xff1a;软件划分为用户客户端和主播服务端两个软件client.c和server.c 用户客户端负责&#xff1a;1.接收用户的昵称2.接收用户输入的信息&#xff0c;能够将信息发送给服务端3.接收服务端回复的数据信息,并完成显示主播服务端负责&#xff1a;1.对所有加入直播间的用…

网络协议栈--应用层--HTTPS协议

目录 一、HTTPS协议原理1.1 HTTPS协议是什么&#xff1f;1.2 概念准备1.2.1 什么是“加密”&#xff1f;1.2.2 为什么要加密&#xff1f;1.2.3 常见的加密方式1.2.3.1 对称加密1.2.3.2 非对称加密 1.2.4 数据摘要&&数据指纹1.2.5 数字签名1.2.6 理解链-承上启下 1.3 HT…

关于JVM的小总结(待补充)

JVM组成及他们之间的关系 装载类子系统字节码执行引擎运行时数据区 装载类子系统 类加载器字节码调节器类加载运行时数据区 字节码执行引擎 运行时数据区 线程私有 虚拟机栈本地方法栈程序计数器 线程共享 堆方法区&#xff08;元空间&#xff09;

后见之明!错过6个涨停板之后的复盘

在今年1月2日和1月3日&#xff0c;旅游板块两支个股先后涨停&#xff0c;此后一支月内三倍&#xff0c;另一支连续6个涨停。事后复盘&#xff0c;我们如何在1月2日第一支个股涨停之后&#xff0c;通过量化分析&#xff0c;找出第二支股&#xff1f; 一个3倍&#xff0c;一个6连…

M1电脑 Xcode15升级遇到的问题

遇到四个问题 一、模拟器下载经常报错。 二、Xcode15报错: SDK does not contain libarclite 三、报错coreAudioTypes not found 四、xcode模拟器运行一次下次必定死机 一、模拟器下载经常报错。 可以https://developer.apple.com/download/all/?qios 下载最新的模拟器&…

工业制氧机的使用与维护管理指南

工业制氧机是工业生产中不可或缺的重要设备&#xff0c;其高效稳定的供氧功能对于保障生产过程的顺利进行至关重要。为了确保工业制氧机能够持续高效地提供氧气&#xff0c;正确的使用方法和维护措施是必不可少的。 在使用工业制氧机时&#xff0c;我们首先要确保设备放置在通风…

网络聊天室的UDP实现以及数据库

网络聊天室UDP实现 服务器端&#xff1a; 头文件&#xff1a; #include <myhead.h>//定义客户信息结构体 typedef struct magtye {char type; //消息类型char name[100]; //客户姓名char text[1024]; //客户发送聊天信息 }msg_t;//定义结构体存储…

mysql的语法总结2

命令&#xff1a; mysql -u 用户名 -p mysql登录 命令&#xff1a;create database u1 创建数据库u1 查询数据库 使用数据库u1 创建表department 查询表department ALTER TABLE 表名 操作类型&#xff1b; 操作类型可以有以下的操作&#xff1a; 添加列&#x…

CubeMX使用教程(2)——点亮LED

在上一章&#xff0c;我们完成了CubeMX的环境配置&#xff0c;这一章我们通过CubeMX来完成点亮LED的工作。 通过LED原理图可知&#xff0c;如果我们要点亮LD1&#xff08;第一个灯&#xff09;&#xff0c;它对应开发板的PC8端口&#xff0c;因此我们应该在CubeMX中将PC8配置为…