|
|
发表于
2025-11-30 12:51:26
|
显示全部楼层
来自 山东
先安装需要的代码库
- python -m pip install -U requests beautifulsoup4 lxml
复制代码
完整更新代码
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- """
- img.ink 每日扩容签到脚本
- 作者: 康哥 QQ:1724464998
- """
- import sys
- import time
- import requests
- from bs4 import BeautifulSoup
- # ========== 配置区 ==========
- LOGIN_URL = 'https://img.ink/auth/login.html'
- MORE_URL = 'https://img.ink/user/moremore.html'
- ACCOUNT = '账号' # 请填写你的img.ink账号
- PASSWORD = '密码' # 请填写你的密码
- # 如需通过代理,可设置 proxies = {'http':'http://127.0.0.1:1080','https':'http://127.0.0.1:1080'}
- PROXIES = {}
- # 请求超时
- TIMEOUT = 10
- # ============================
- HEADERS = {
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
- 'AppleWebKit/537.36 (KHTML, like Gecko) '
- 'Chrome/114.0 Safari/537.36'
- }
- def log(msg):
- print(f'[{time.strftime("%Y-%m-%d %H:%M:%S")}] {msg}')
- def get_token(session):
- """访问登录页,解析 __token__"""
- log('Fetching login page...')
- rsp = session.get(LOGIN_URL, headers=HEADERS, proxies=PROXIES, timeout=TIMEOUT)
- rsp.raise_for_status()
- soup = BeautifulSoup(rsp.text, 'lxml')
- token_input = soup.select_one('input[name="__token__"]')
- if not token_input:
- raise RuntimeError('Can not find __token__ in login page!')
- token = token_input['value']
- log(f'Got __token__: {token}')
- return token
- def login(session, token):
- """执行登录"""
- data = {
- 'account': ACCOUNT,
- 'password': PASSWORD,
- '__token__': token
- }
- log('Logging in...')
- # 会 302 跳转到 /user/index.html
- rsp = session.post(LOGIN_URL, data=data, headers=HEADERS,
- proxies=PROXIES, timeout=TIMEOUT, allow_redirects=True)
- rsp.raise_for_status()
- # 简单判断:登录失败一般仍停留在 /auth/login.html
- if 'login.html' in rsp.url:
- raise RuntimeError('Login failed, check account/password!')
- log('Login succeed!')
- def check_in(session):
- """访问扩容页并判断结果"""
- log('Accessing moremore page...')
- rsp = session.get(MORE_URL, headers=HEADERS, proxies=PROXIES, timeout=TIMEOUT)
- rsp.raise_for_status()
- soup = BeautifulSoup(rsp.text, 'html.parser')
- # 查找成功提示
- success_tag = soup.select_one('p.success')
- if success_tag and '成功扩容' in success_tag.text:
- log(f'✅ 签到成功:{success_tag.text.strip()}')
- return
- # 老兜底规则(没抓到新样式时仍可运行)
- text = rsp.text
- if '每天仅可扩容一次' in text or '今日已扩容' in text:
- log('⚠️ 今日已扩容,明天再来~')
- else:
- log('❓ 未知返回,请手动检查:' + text[:200])
- def main():
- with requests.Session() as s:
- try:
- token = get_token(s)
- login(s, token)
- check_in(s)
- except Exception as e:
- log(f'❌ Error: {e}')
- sys.exit(1)
- if __name__ == '__main__':
- main()
复制代码 运行输出演示
- [2025-11-30 12:46:00] Fetching login page...
- [2025-11-30 12:46:00] Got __token__: 3b***fd1002***aac3****b356a22c49
- [2025-11-30 12:46:00] Logging in...
- [2025-11-30 12:46:02] Login succeed!
- [2025-11-30 12:46:02] Accessing moremore page...
- [2025-11-30 12:46:02] ✅ 签到成功:成功扩容: 60 MB,明天再来吧
复制代码- [2025-11-30 12:50:53] Fetching login page...
- [2025-11-30 12:50:53] Got __token__: b6***ea1***cc8f2****a848f***30ae
- [2025-11-30 12:50:53] Logging in...
- [2025-11-30 12:50:55] Login succeed!
- [2025-11-30 12:50:55] Accessing moremore page...
- [2025-11-30 12:50:55] ⚠️ 今日已扩容,明天再来~
复制代码 |
|