Files
qinglong/脚本库/web版/账密/机场签到/2025-10-28_机场签到_9f07b241.py
2026-05-24 05:33:05 +00:00

150 lines
6.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Source: https://github.com/NaroisCool/naro-scripts/blob/master/%E6%9C%BA%E5%9C%BA%E7%AD%BE%E5%88%B0.py
# Raw: https://raw.githubusercontent.com/NaroisCool/naro-scripts/master/%E6%9C%BA%E5%9C%BA%E7%AD%BE%E5%88%B0.py
# Repo: NaroisCool/naro-scripts
# Path: 机场签到.py
# UploadedAt: 2025-10-28T05:54:28+08:00
# SHA256: 9f07b2418f8b79135f85915156e878e42ab114c82b05adae49df87fc6dbbf8f2
# Category: web版/账密
# Evidence: web/H5关键词 + username/password/login
import json
import os
from urllib.parse import quote
import httpx
import requests
from bs4 import BeautifulSoup
import notify
"""
百变小樱机场自动签到领流量
机场注册地址☞ https://dash.bbxy.buzz/auth/register?code=G9we
脚本执行要求安装python依赖bs4和httpx;填入变量BBXY_EMAIL邮箱账号和BBXY_PASSWORD登录密码
感谢原作者Admsec
经NaroisCool改进将从百变小樱官方永久地址发布网站http://bbxy88.com/)上爬取最新的国内访问地址,以及其他方法内的逻辑改动。
"""
class BBXYSign:
def __init__(self):
self.headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0"}
self.session = httpx.Client()
self.originUrl = ""
self.loginUrl = ""
self.email = os.environ.get("BBXY_EMAIL")
self.password = os.environ.get("BBXY_PASSWORD")
self.params = {"email": self.email, "passwd": self.password, "remember-me": '0'}
self.signSuccessOrNot = False
self.signSuccessMsg = ""
def check_websites_sync(self, websites):
with httpx.Client(headers=self.headers) as client:
print(f"总共{len(websites)}个网站")
count = 1
for site in websites:
try:
response = client.get(site)
if response.status_code == 200 :
print(f"这个链接可以访问,暂定:{site}")
self.loginUrl = site + "/auth/login"
self.originUrl = site
#进行登录测试
flag = self.login()
if flag:
print(f"这个链接可以登录,锁定:{site}")
count = count +1
if count>len(websites):
notify.send('BBXY签到结果','所有网站登录测试失败,请重新运行一遍!')
return site
else :
print(f'登录失败,尝试下一个链接')
print('-----------------')
count = count +1
if count>len(websites):
notify.send('BBXY签到结果','所有网站登录测试失败,请重新运行一遍!')
continue
except httpx.RequestError as e:
print(f"这个链接不能用,避一避: {site} - {e}")
print('-----------------')
count = count +1
if count>len(websites):
notify.send('BBXY签到结果','所有网站登录测试失败,请重新运行一遍!')
continue
'''
登录
'''
def login(self):
print('开始登录测试...')
try:
r = self.session.post(url=self.loginUrl, params=self.params, headers=self.headers)
response = json.loads(r.text)
if response['ret'] != 1:
print(f"登录失败, 原因:{response['msg']}")
return False
else:
print("登录成功")
return True
except Exception as e:
print(e)
return False
"""
签到
"""
def sign(self):
try:
client = self.session.post(url=self.originUrl + "/user/checkin", params=self.params, headers=self.headers)
response = json.loads(client.text)
if response['ret'] != 1:
print(f"签到失败了,原因是{response['msg']}")
notify.send('BBXY签到结果',response['msg'])
return False
self.signSuccessMsg = response
self.signSuccessOrNot = True
#result = self.signSuccessMsg['msg'].decode('unicode_escape')
msg = (f"签到成功:{self.signSuccessMsg['msg']}\n总流量{self.signSuccessMsg['traffic']}\n"
f"今日已用{self.signSuccessMsg['trafficInfo'].get('todayUsedTraffic')}\n"
f"总共已用{self.signSuccessMsg['trafficInfo'].get('lastUsedTraffic')}\n"
f"剩余流量{self.signSuccessMsg['trafficInfo'].get('unUsedTraffic')}\n")
if self.signSuccessOrNot:
notify.send('BBXY签到结果',msg)
return True
else:
notify.send('BBXY签到结果',msg)
return False
return True
except Exception as e:
print(e)
return False
"""
消息模板,顺便发送消息到微信公众号
"""
if __name__ == '__main__':
"""
主程序
从http://bbxy88.com/上爬取最新国内的入口地址
"""
print("*****\n"
"百变小樱机场自动签到领流量\n"
"机场注册地址☞ https://bbxy.life/auth/register?code=G9we\n"
"脚本执行要求填入变量BBXY_EMAIL邮箱账号和BBXY_PASSWORD登录密码\n"
"感谢原作者Admsec\n"
"经NaroisCool改进将从百变小樱官方永久地址发布网站http://bbxy88.com/)上爬取最新的国内访问地址,以及其他方法内的逻辑改动。\n"
"*****")
url = 'http://bbxy88.com/'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
links = [link.get('href') for link in soup.find_all('a')]
additional_links = ['https://dash.bbxy.buzz/','https://baibianxiaoying.top/']
websites = links+additional_links
a = BBXYSign()
a.check_websites_sync(websites)
a.sign()