吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1353|回复: 10
收起左侧

[Python 原创] 某pt站点验证码签到分析

[复制链接]
hqt 发表于 2024-4-20 12:12

某PT站(空)签到脚本

思路

通过抓包获取到签到接口的请求参数,然后通过requests库发送请求,完成签到。
通过抓包可知,空签到大致分为了三步
第一步.png
第二步.png
第三步.png
通过带有cookies的请求发送到签到接口,使用ddddocr识别验证码,完成签到。
Github项目地址 https://github.com/ours1505/HDSkyAutoCheckin

使用方式

  1. 获取cookie
    在浏览器中打开签到页面,在开发者工具中查看请求头,找到cookie字段,将cookie复制到config.ini文件中。  
  2. 运行脚本
    在终端中运行脚本,即可完成签到。(建议通过crontab定时执行)  
  3. 获取签到结果
    在终端中查看签到结果。  

注意事项

  1. 请确保文件中的cookie是正确的。  
  2. 请勿频繁运行脚本,否则可能会被封禁。  
  3. 请勿将cookie泄露给其他人。


[Python] 纯文本查看 复制代码
import configparser
from urllib.parse import urlencode
from ddddocr import DdddOcr
import requests
import logging

logging.basicConfig(level=logging.INFO, format='%(levelname)s - %(message)s')


def checkin():
    # 实例化DdddOcr对象
    ocr = DdddOcr()
    config = configparser.ConfigParser(interpolation=None)
    config.read('config.ini', encoding='utf-8')
    ua = config['default']['UserAgent']
    headers = {'User-Agent': ua, 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', }
    logging.info(f"正在签到站点: hdsky")
    cookies = config.get('hdsky', 'cookie').split('; ')
    cookie_dict = {}
    for pair in cookies:
        key, value = pair.split('=', 1)
        cookie_dict[key] = value
    while True:
        payload = urlencode({'action': 'new'})
        response = requests.post(f'https://hdsky.me/image_code_ajax.php', headers=headers, data=payload,
                                 cookies=cookie_dict, verify=False)
        if response.status_code == 200 and response.json()['success']:
            code = response.json()['code']
            response = requests.get(f'https://hdsky.me/image.php?action=regimage&imagehash={code}', headers=headers,
                                    stream=True, verify=False)
            if response.status_code == 200:
                # 将响应内容保存为bytes对象
                image_bytes = response.content
                # 使用ocr对象识别图片中的验证码
                recognized_text = ocr.classification(image_bytes)
                logging.info(f'获取到验证码为:{recognized_text}')
                payload = {'action': 'showup', 'imagehash': code, 'imagestring': recognized_text}
                response = requests.post(f'https://hdsky.me/showup.php', headers=headers, data=payload,
                                         cookies=cookie_dict, verify=False)
                if response.json()['success']:
                    logging.info(f'站点hdsky.me签到成功')
                    break
                elif response.json()['message'] == 'date_unmatch':
                    logging.info('站点已经签到')
                    break
                else:
                    logging.info('验证码识别错误,重试')


if __name__ == '__main__':
    checkin()

免费评分

参与人数 3吾爱币 +9 热心值 +3 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
galaxys10 + 1 + 1 谢谢@Thanks!楼主能不能邀请我进站。
loveqq520 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

urdarling 发表于 2024-4-20 12:50
是我理解的那个p站吗
头号玩家 发表于 2024-4-20 13:39
xndell 发表于 2024-4-20 14:25
lemonhack27 发表于 2024-4-20 16:13
太厉害了👍
goblack 发表于 2024-4-20 16:46
签到页面加cloudflare验证的比如ob就麻烦很多没法用这些脚本。

jituidadada 发表于 2024-4-20 16:47
求个本站的药,佬(mt,人人人或其他站可验证邮箱用户名
jlbslqqs 发表于 2024-4-20 20:07
话说PT的考核真是头疼
otakuacg 发表于 2024-4-22 11:36
哟  好久没见你发帖了
advancejar 发表于 2024-5-28 09:50
请给个config.ini文件的格式
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-28 07:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表