利用騰訊提供的 Web 狀態查詢接口 https://wpa.paipai.com/pa?p=1:{QQ}:17,根據返回內容長度判斷在線狀態:
Content-Length: 2348 → 在線;Content-Length: 2205 → 離線;
import time
import datetime
import urllib.request
def check_qq(qq_num):
url = f'https://wpa.paipai.com/pa?p=1:{qq_num}:17'
try:
with urllib.request.urlopen(url, timeout=10) as resp:
length = resp.headers.get('Content-Length')
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
print(f'{now} Content-Length: {length}')
if length == '2348':
return 'Online'
elif length == '2205':
return 'Offline'
else:
return 'Unknown'
except Exception as e:
return f'Error: {e}'
def log_state(qq_num, state):
with open(str(qq_num), 'a') as f:
f.write(f'{datetime.datetime.now()}===state==={state}\n')
if __name__ == '__main__':
QQ = 847893543 # 目標 QQ 號
while True:
state = check_qq(QQ)
log_state(QQ, state)
print(f'{QQ} is {state}')
time.sleep(300) # 5 分鐘檢測一次