Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知)

yizhihongxing

下面是 Python 实现 T00ls 自动签到脚本代码的完整攻略。

1. 为什么需要自动签到

对于 T00ls(T00ls.net)这个网站,每天都需要签到一次才能获得贡献值,获得更好的体验和权限。如果你忘记了签到或者没有时间,那么就会影响你在 T00ls 上的使用体验。因此,我们可以使用 Python 编写自动签到脚本,在固定的时间自动完成签到,让你的使用更加便捷。

2. 实现自动签到脚本

以下是实现自动签到脚本的步骤:

2.1 安装必要的库

  • requests:用于发送 POST 请求进行签到
  • configparser:用于读取配置文件中的信息
  • smtplib:用于发送邮件
  • json:用于处理 JSON 数据
  • time:用于处理时间

可以使用以下命令进行安装:

pip install requests configparser smtplib json time

2.2 编写代码

下面是代码实现的过程:

import requests
import configparser
import smtplib
from email.mime.text import MIMEText
import json
import time

# 读取配置文件
config = configparser.ConfigParser()
config.read('config.ini', encoding='utf-8')

# 设置请求头
headers = {
    'User-Agent': config.get('info', 'user_agent'),
    'Cookie': config.get('info', 'cookie')
}

# 签到相关信息
username = config.get('info', 'username')
email_address = config.get('info', 'email_address')
dd_webhook = config.get('info', 'dd_webhook')

# 发送 POST 请求进行签到
url = 'https://www.t00ls.net/ajax-sign.json'
data = {'formhash': config.get('info', 'formhash')}

response = requests.post(url, headers=headers, data=data)

# 解析返回数据
result = json.loads(response.text)

# 邮件通知
subject = 'T00ls自动签到通知'
content = '{},你好:\n\n签到结果:{}\n签到信息:{}'.format(username, result['msg'], result['content'])
msg = MIMEText(content)
msg['Subject'] = subject
msg['From'] = email_address
msg['To'] = email_address

smtp_server = config.get('info', 'smtp_server')
smtp_port = config.get('info', 'smtp_port')

server = smtplib.SMTP(smtp_server, smtp_port)
server.login(email_address, config.get('info', 'email_passwd'))
server.sendmail(msg['From'], [msg['To']], msg.as_string())
server.quit()

# 钉钉通知
if dd_webhook:
    timestamp = str(round(time.time() * 1000))
    secret = config.get('info', 'dd_secret')
    secret_enc = secret.encode('utf-8')
    string_to_sign = '{}\n{}'.format(timestamp, secret)
    string_to_sign_enc = string_to_sign.encode('utf-8')
    from hashlib import sha256
    hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=sha256).digest()
    sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))
    url = '{}&timestamp={}&sign={}'.format(dd_webhook, timestamp, sign)

    headers = {'Content-Type': 'application/json;charset=utf-8'}

    data = {
        "msgtype": "text",
        "text": {
            "content": content
        },
        "at": {
            "isAtAll": False
        }
    }

    requests.post(url, headers=headers, json=data)

2.3 配置文件的设置

在程序运行时,需要读取config.ini中的信息,下面是config.ini文件的示例:

[info]
user_agent = Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299
cookie = 在这里填写你的 Cookie 信息
username = 在这里填写你的用户名
formhash = 在这里填写你的 formhash
email_address = 在这里填写你的邮箱地址
email_passwd = 在这里填写你的邮箱密码
smtp_server = 在这里填写你的 SMTP 服务器地址
smtp_port = 在这里填写你的 SMTP 服务器端口
dd_webhook = 在这里填写你的钉钉 Webhook 地址
dd_secret = 在这里填写你的钉钉 Secret

2.4 示例说明

下面是两条示例说明:

2.4.1 示例 1

用户小明在机器上设置一个定时任务,每天定时运行自动签到脚本,然后在邮箱邮箱里查收签到结果。如果签到失败,会显示失败原因。

2.4.2 示例 2

用户小红在机器上设置一个定时任务,每天定时运行自动签到脚本,并通过钉钉机器人通知签到结果。如果签到成功,则不会有通知,如果签到失败,则会有通知。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知) - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • python集合能干吗

    Python集合是一种无序、不重复的数据类型,可以用于存储各种类型的值,例如数字、字符串和元组等。集合非常适合用于数据去重、判断成员关系、求交集和并集等场景。 数据去重 集合最常用的功能之一就是去重。我们可以将一组数据放到一个集合中,自动去除重复的元素。使用方法如下: # 创建一个列表,包含重复元素 nums = [1, 2, 3, 2, 4, 5, 1] …

    python 2023年5月13日
    00
  • Python自动发邮件脚本

    下面将为您详解”Python自动发邮件脚本”的完整攻略。 前置知识 在学习Python自动发邮件脚本之前,您需要掌握以下技能: Python基础语法 smtplib模块的基本使用 使用SMTP协议发送邮件的基本流程 发送邮件原理 发送邮件的原理是通过SMTP协议,将邮件服务器作为客户端连接到邮件服务器,并进行身份验证后,利用sendmail()方法,将邮件发…

    python 2023年5月19日
    00
  • Python 调用GPT-3 API实现过程详解

    Python 调用 GPT-3 API 实现过程详解 简介 在本篇文章中,我们将学习如何使用 Python 调用 GPT-3(Generative Pre-trained Transformer 3)API 并生成文本。GPT-3 是目前取得了良好效果的自然语言生成系统之一,是 OpenAI 公司开发的。使用 GPT-3,我们可以生成文章、书籍、对话等。在本…

    python 2023年5月14日
    00
  • python轮询机制控制led实例

    下面我将详细讲解“python轮询机制控制led实例”的完整攻略。 1. 轮询机制的概念和作用 轮询机制是指通过不断地循环查询某个状态来实现任务的执行。在实际编程中,轮询机制常被用于实现一些需要不断检测某个外部状态的任务,例如网络通讯、设备操作等。在这种情况下,我们往往需要通过轮询来获取外部状态的变化,并及时作出相应的响应。 在控制led实例的过程中,我们可…

    python 2023年5月19日
    00
  • Python学习之基础语法介绍

    Python学习之基础语法介绍 什么是Python? Python是一种解释型、跨平台的高级编程语言,被广泛用于Web开发、科学计算、人工智能等领域。 Python语言具有简单易学、代码清晰、可读性高、规范化等特点,非常适合初学者入门。 Python的基础语法 数据类型 Python中有几种基本的数据类型:整数(int)、浮点数(float)、字符串(str…

    python 2023年5月20日
    00
  • 一篇文章带你详细了解python中一些好用的库

    当谈到Python编程的好处时,经常会被提起的一个主要优势是其庞大的库和工具生态系统。在Python中,拥有成千上万的库,这些库可以快速帮助您解决各种各样的问题并简化您的工作流程。这篇文章将介绍一些好用的Python库,让您了解到这些库的功能和用法,然后在实践中应用它们。 一、Pandas Pandas是一种强大的数据处理库,广泛用于对数据进行分析和操作。P…

    python 2023年6月3日
    00
  • Pandas-Cookbook 时间戳处理方式

    Pandas-Cookbook 是一个专注于使用 Pandas 库进行数据分析的在线学习资源,其中有一个部分关注时间戳的处理。本文将为大家详细讲解“Pandas-Cookbook 时间戳处理方式”的完整攻略,帮助大家更好地理解这部分内容。 一、准备工作 在学习时间戳处理之前,我们需要做一些准备工作: 确认环境已经安装好 Pandas 库。 确认已经成功导入 …

    python 2023年6月2日
    00
  • python 定义n个变量方法 (变量声明自动化)

    Python 中可以通过“一行定义n个变量”的方法快速初始化多个变量,避免了繁琐的定义和赋值过程。 具体操作方法如下: 定义多个变量,使用逗号进行分割。 将逗号分割的变量组成一个序列。 使用序列解包,将序列中的元素分别赋值给前面定义的变量。 示例1: # 定义三个变量x、y、z,同时进行初始化 x, y, z = 1, 2, 3 print(x, y, z)…

    python 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部