Continue seeded Qinglong script collection
This commit is contained in:
149
脚本库/web版/账密/机场签到/2025-10-28_机场签到_9f07b241.py
Normal file
149
脚本库/web版/账密/机场签到/2025-10-28_机场签到_9f07b241.py
Normal file
@@ -0,0 +1,149 @@
|
||||
# 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()
|
||||
Reference in New Issue
Block a user