Python检测微信域名封禁状态的完整教程

Python检测微信域名封禁状态的完整教程_第1张图片

介绍

本教程演示如何使用Python调用微信域名检测API,判断指定域名在微信平台内是否被封禁。通过发送目标URL到检测接口,可以获取域名状态信息,返回结果中status为1表示域名被拦截,为0表示域名被封禁,2表示域名正常。

Python代码

import requests
from urllib.parse import quote

def check_wechat_domain_status(target_url):
    """
    检测微信域名封禁状态
    :param target_url: 要检测的完整URL(如:https://baidu.com)
    :return: 包含状态码和消息的字典
    """
    api_base = "https://api.wxapi.work/wx/"
    
    if not target_url:
        return {
            "status": "0",
            "message": "URL不能为空"
        }
    
    try:
        # 编码URL参数
        encoded_url = quote(target_url, safe='')
        
        # 构造完整请求URL
        api_url = f"{api_base}?url={encoded_url}"
        
        # 发送GET请求
        response = requests.get(api_url)
        response.raise_for_status()
        
        # 解析JSON响应
        result = response.json()
        
        # 标准化返回结果
        if "status" in result:
            status_mapping = {
                "1": "被拦截",
                "0": "被封禁",
                "2": "正常"
            }
            return {
                "status": result["status"],
                "message": status_mapping.get(result["status"], "未知状态")
            }
        else:
            return {
                "status": "0",
                "message": "无效的API响应"
            }
        
    except requests.exceptions.RequestException as e:
        return {
            "status": "0",
            "message": f"请求失败: {str(e)}"
        }

# 示例用法
if __name__ == "__main__":
    # 要检测的URL列表
    test_urls = [
        "https://baidu.com",
        "https://qq.com",
        "https://example.com",
        ""  # 测试空URL情况
    ]
    
    print("微信域名状态检测结果:")
    print("状态码说明: 0=被封禁, 1=被拦截, 2=正常\n")
    
    for url in test_urls:
        print(f"\n正在检测: {url if url else '空URL'}")
        result = check_wechat_domain_status(url)
        print(f"状态码: {result['status']}")
        print(f"状态信息: {result['message']}")
        print("-" * 50)

使用方法

  1. 安装依赖库:

    pip install requests
  2. 修改代码中的test_urls列表,添加你要检测的完整URL(需包含http://或https://)

  3. 运行脚本,将得到类似以下结果:

    {"status": "2", "message": "正常"}

    {"status": "0", "message": "被封禁"}

    {"status": "1", "message": "被拦截"}

返回结果说明

  • status:
    • "0" 表示域名被封禁
    • "1" 表示域名被拦截
    • "2" 表示域名正常
  • message: 详细的状态信息

注意事项

  1. 必须提供完整的URL(包含http://或https://)
  2. 微信对域名检测较为敏感,建议控制检测频率
  3. 实际封禁状态可能因微信平台政策调整而变化
  4. 本教程仅供技术交流使用,请遵守微信平台相关规定

常见问题

  1. 如果返回"URL不能为空",请检查是否提供了有效的URL
  2. 如果返回"请求失败",请检查网络连接或API是否可用
  3. 建议先测试几个已知状态的域名验证API可用性
  4. 微信域名状态可能有缓存,建议间隔一段时间后重新检测

你可能感兴趣的:(java,数据库,开发语言)