首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

Python 檢測 QQ 在線狀態:基於騰訊 Web 协议的實現

     編輯:更多程式設計知識

原理說明

利用騰訊提供的 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 分鐘檢測一次

注意事項

  • 接口屬非官方公開 API,隨時可能失效或限制頻率;
  • 生產環境建議加入重試、異常告警、日誌輪轉;
  • 大規模監控請使用官方開放平台 API(需申請)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved