Files
xbot-market-info/market-data-analyse.ipynb
2024-12-24 21:04:13 +08:00

32 KiB

用于分析市场指令相关的数据

原始数据源: rpa_app_scene_info 表, 连表查询出编辑应用指令的数据

分析目标:

  • 应用使用自定义指令的占比数量, 应用使用市场指令的占比数据
  • 分析高频使用的市场指令, 指令对应用的占比, 指令在总使用条数的占比
  • 针对 TOP 指令, 找到对应指令的使用热区

同步数据至本地

  • 同步数据库数据
  • 同步市场指令数据
In [94]:
import pandas as pd
import mysql.connector
import warnings

# 忽略特定警告
warnings.filterwarnings(
    "ignore",
    category=UserWarning,
    message="pandas only supports SQLAlchemy connectable",
)


db_host = "sh-cdb-qlnh5ecg.sql.tencentcdb.com"
db_port = "25944"
db_user = "root"
db_password = "VaDS4mrgKoJi"
db_name = "xbot_market_info"

conn = mysql.connector.connect(
    host=db_host, port=db_port, user=db_user, password=db_password, database=db_name
)

query = "SELECT * FROM rpa_app_scene_info_dev"
df = pd.read_sql(query, conn)
conn.close()
print(f"最近编辑应用数据的总条数为:{df.shape[0]}")
最近编辑应用数据的总条数为:48969
In [95]:
import requests

from typing import List
from urllib import parse


def get_token(username, password):
    """
    利用网页端获取 token
    :param username: 用户名
    :param password: 密码
    :return: token
    """
    url = "https://api.winrobot360.com/oauth/token"
    data = {
        "username": username,
        "password": password,
        "grant_type": "password",
        "scope": "all",
    }

    payload = parse.urlencode(data)
    headers = {
        "accept": "application/json",
        "authorization": "Basic Y29uc29sZTpzVVdpeTZzTmlYZDBlNUxo",
        "content-type": "application/x-www-form-urlencoded;charset=UTF-8",
    }
    response = requests.request("POST", url, headers=headers, data=payload).json()

    if response.get("success") == "false":
        raise ValueError(response.get("msg"))
    return response.get("access_token")


def get_activity_info(token, page=1, size=200):
    """
    获取活动信息列表
    :param token: 认证用的 token
    :param page: 分页页码,默认为 1
    :param size: 分页大小,默认为 10
    :return: 所有页的数据列表
    """
    url = "https://api.winrobot360.com/api/v1/robot/activity/package/list"
    all_data = []
    while True:
        payload = {
            "source": "market",
            "page": page,
            "size": size,
            "groupInfoUuid": "22222222-2222-2222-2222-222222222222",
            "marketUiTag": "",
            "uiaType": "pc",
            "order": "desc",
        }
        headers = {
            "Authorization": f"bearer {token}",
            "Accept": "application/json",
            "Accept-Encoding": "json",
        }
        response = requests.get(url, headers=headers, params=payload)
        response_json = response.json()
        if not response.ok or not response_json.get("success"):
            raise ValueError(response_json.get("msg"))
        data = response_json.get("data")
        all_data.extend(data)
        if not data or len(data) < size:
            break
        page += 1
    return all_data


username = "剑心@fckj"
password = "320753691love"
token = get_token(username=username, password=password)
activity_infos = get_activity_info(token)
# print(activity_infos)
market_activity_detail_data = {}
for item in activity_infos:
    # print(item.get("packageName"), item.get("packageViewName"))
    market_activity_detail_data[item.get("packageName")] = item.get("packageViewName")

print(f"官方指令的总条数为:{len(market_activity_detail_data)}")
官方指令的总条数为:147

自定义指令占比

In [96]:
import json

df["scene_info"]
df["extension_names"] = df["scene_info"].apply(
    lambda x: json.loads(x).get("extension_names")
)
df["extension_names"]
empty_count = df['extension_names'].apply(lambda x: len(x) == 0).sum()
non_empty_count = df['extension_names'].apply(lambda x: len(x) > 0).sum()


print(f"{'最近编辑应用总数:':<20}{len(df)}")
print(f"{'应用未使用自定义指令总数:':<20}{empty_count}")
print(f"{'应用使用自定义指令总数:':<20}{non_empty_count}")
print(f"{'应用使用自定义指令占比:':<20}{non_empty_count / len(df):.2%}")
最近编辑应用总数:           48969
应用未使用自定义指令总数:       28800
应用使用自定义指令总数:        20169
应用使用自定义指令占比:        41.19%
In [97]:
activity_code_keys = set(market_activity_detail_data.keys())

used_market_activity_robot_count = df["extension_names"].apply(lambda x: any(key in str(x) for key in activity_code_keys)).sum()
print(f"最近编辑应用总数: {len(df)}")
print(f"应用使用自定义指令总数: {non_empty_count}")
print(f"应用使用市场自定义指令总数: {used_market_activity_robot_count}")
print(f"应用使用市场自定义指令占比: {used_market_activity_robot_count/len(df):.2%}")
print(f"市场自定义指令在使用自定义指令占比: {used_market_activity_robot_count/non_empty_count:.2%}")
最近编辑应用总数: 48969
应用使用自定义指令总数: 20169
应用使用市场自定义指令总数: 18920
应用使用市场自定义指令占比: 38.64%
市场自定义指令在使用自定义指令占比: 93.81%

分析市场自定义指令使用情况

市场指令在应用中的占比
In [99]:
# 遍历 activity_code_keys, 统计应用的使用次数

# 确保 extension_names 列为字符串类型
df["extension_names_str"] = df["extension_names"].astype(str)

# 初始化计数字典
market_activity_map_robot_count = {}

# 使用矢量化操作统计每个 key 的出现次数
for key in activity_code_keys:
    count = df["extension_names_str"].str.contains(key).sum()
    if count > 0:
        market_activity_map_robot_count[key] = count

# 按照使用次数从大到小排序
market_activity_map_robot_count = dict(
    sorted(market_activity_map_robot_count.items(), key=lambda x: x[1], reverse=True)
)

# print(f"\t\t市场指令应用占比\t最近编辑应用占比")
for package_code, package_code_count in market_activity_map_robot_count.items():
    # if package_code_count < 500:
    #     continue
    print(
        f"""{market_activity_detail_data.get(package_code)}:\t{package_code_count}\t{package_code_count / used_market_activity_robot_count:.2%}\t{package_code_count / len(df):.2%}"""
    )
    # print(f"{market_activity_detail_data.get(package_code)}:\t{package_code_count}")
Excel扩展操作:	7887	41.69%	16.11%
列表扩展操作:	2460	13.00%	5.02%
日期时间扩展:	2181	11.53%	4.45%
网页扩展操作:	2125	11.23%	4.34%
登录扩展操作:	1870	9.88%	3.82%
弹窗智能侦测器:	1722	9.10%	3.52%
文件扩展功能:	1447	7.65%	2.95%
飞书电子表格(RPA):	1301	6.88%	2.66%
通用日期选择:	1205	6.37%	2.46%
数据库扩展操作:	1058	5.59%	2.16%
文本扩展功能:	984	5.20%	2.01%
XPath跨域获取网页元素:	867	4.58%	1.77%
滑块拼图验证码(免费):	815	4.31%	1.66%
个人微信:	782	4.13%	1.60%
并发调用子流程:	772	4.08%	1.58%
WPS 在线表格:	713	3.77%	1.46%
获取进程or杀进程:	701	3.71%	1.43%
应用帐号信息:	696	3.68%	1.42%
json数据提取:	684	3.62%	1.40%
紫鸟控制台操作:	649	3.43%	1.33%
图片扩展操作:	635	3.36%	1.30%
【付费】验证码识别(web):	579	3.06%	1.18%
飞书多维表格:	552	2.92%	1.13%
云码验证码扩展:	546	2.89%	1.11%
Cookie登录操作:	364	1.92%	0.74%
抖店操作:	359	1.90%	0.73%
数学函数操作:	321	1.70%	0.66%
钉钉在线表格操作:	320	1.69%	0.65%
懒加载操作:	282	1.49%	0.58%
SAP 扩展:	259	1.37%	0.53%
字典扩展操作:	253	1.34%	0.52%
拼多多数据获取:	253	1.34%	0.52%
MySQL扩展操作:	250	1.32%	0.51%
企业微信:	229	1.21%	0.47%
WPS 扩展:	224	1.18%	0.46%
钉钉云盘操作:	221	1.17%	0.45%
亚马逊卖家后台扩展操作:	214	1.13%	0.44%
计算机扩展:	210	1.11%	0.43%
Photoshop 操作:	181	0.96%	0.37%
钉钉机器人操作:	176	0.93%	0.36%
影刀离线OCR:	164	0.87%	0.33%
等待任意元素:	161	0.85%	0.33%
广告杀手:	160	0.85%	0.33%
消息推送:	159	0.84%	0.32%
PDF 扩展操作:	150	0.79%	0.31%
腾讯文档扩展:	137	0.72%	0.28%
动态调用:	135	0.71%	0.28%
(新版)生意参谋数据获取:	132	0.70%	0.27%
手机系统操作:	130	0.69%	0.27%
语音助手-edge-tts:	129	0.68%	0.26%
拼多多时间选择:	121	0.64%	0.25%
手机文件操作:	117	0.62%	0.24%
进度条扩展操作:	104	0.55%	0.21%
鼠标扩展操作:	91	0.48%	0.19%
DataFrame表格扩展指令集:	90	0.48%	0.18%
京东商智扩展操作:	89	0.47%	0.18%
获取图表元素数据:	87	0.46%	0.18%
生意参谋常用操作:	76	0.40%	0.16%
Word 扩展:	76	0.40%	0.16%
万相台无界版:	73	0.39%	0.15%
浏览器扩展:	72	0.38%	0.15%
隐藏/显示浏览器窗口:	72	0.38%	0.15%
视频操作操作:	69	0.36%	0.14%
旺店通自定义操作:	68	0.36%	0.14%
Outlook 扩展操作:	67	0.35%	0.14%
抖音时间选择:	66	0.35%	0.13%
淘宝时间选择:	63	0.33%	0.13%
链接编码和解码:	60	0.32%	0.12%
罗盘.经营:	54	0.29%	0.11%
赤兔名品_时间选择:	50	0.26%	0.10%
Sqlite3 扩展操作:	48	0.25%	0.10%
翻译扩展操作:	48	0.25%	0.10%
生意参谋时间选择操作:	43	0.23%	0.09%
京东商智数据获取-商家版:	43	0.23%	0.09%
维格表操作:	40	0.21%	0.08%
HubStudio浏览器扩展操作:	39	0.21%	0.08%
软件(win)扩展:	35	0.18%	0.07%
天猫宝贝上架:	35	0.18%	0.07%
阿里妈妈多平台数据获取:	34	0.18%	0.07%
Sql Server 扩展:	33	0.17%	0.07%
断言:	31	0.16%	0.06%
二维码条形码:	30	0.16%	0.06%
PPT 扩展:	30	0.16%	0.06%
Redis 扩展:	29	0.15%	0.06%
免费OCR:	29	0.15%	0.06%
京东商智数据获取-品牌版:	29	0.15%	0.06%
打印机扩展:	28	0.15%	0.06%
异步下载图片:	27	0.14%	0.06%
唯品会指令集:	26	0.14%	0.05%
巨量千川:	25	0.13%	0.05%
京准通操作:	23	0.12%	0.05%
电子发票识别:	21	0.11%	0.04%
生意参谋扩展操作(win):	21	0.11%	0.04%
RAR解压缩操作:	21	0.11%	0.04%
汇率查询与转换:	20	0.11%	0.04%
物流信息分析:	20	0.11%	0.04%
紫鸟浏览器API:	18	0.10%	0.04%
PostgreSQL 扩展:	18	0.10%	0.04%
CSV扩展操作:	18	0.10%	0.04%
获取Windows凭据:	17	0.09%	0.03%
淘系推广时间选择:	15	0.08%	0.03%
引入指定应用python模块:	15	0.08%	0.03%
网银安全控件输入:	15	0.08%	0.03%
物流信息查询:	14	0.07%	0.03%
云码验证码扩展(win):	13	0.07%	0.03%
巨量百应数据扩展 (达人版):	12	0.06%	0.02%
京东商智数据获取-品牌店铺版:	12	0.06%	0.02%
Oracle 扩展操作:	11	0.06%	0.02%
飞鸽客服系统扩展:	11	0.06%	0.02%
云码验证码扩展(手机):	11	0.06%	0.02%
精选联盟数据扩展 (商家版):	11	0.06%	0.02%
谷歌recaptcha验证码:	11	0.06%	0.02%
淘系推广数据获取:	9	0.05%	0.02%
企业微信-服务端:	9	0.05%	0.02%
POST文件上传:	9	0.05%	0.02%
快手扩展:	8	0.04%	0.02%
巨量纵横:	8	0.04%	0.02%
京东金融时间选择:	8	0.04%	0.02%
千牛扩展:	7	0.04%	0.01%
天猫字体解密扩展:	7	0.04%	0.01%
直播弹幕扩展:	6	0.03%	0.01%
Matplotlib:	5	0.03%	0.01%
影刀离线NLP:	5	0.03%	0.01%
AI拓展操作:	4	0.02%	0.01%
旺店通数据查询—旗舰版接口:	4	0.02%	0.01%
WPS 多维表格:	4	0.02%	0.01%
SSH 隧道:	4	0.02%	0.01%
万象隐藏:	4	0.02%	0.01%
京准通数据获取:	4	0.02%	0.01%
旺店通数据查询—企业版接口:	3	0.02%	0.01%
电商罗盘数据获取:	3	0.02%	0.01%
百度智能云指令:	3	0.02%	0.01%
巨量纵横通用时间选择:	3	0.02%	0.01%
批量数据抓取(Java):	2	0.01%	0.00%
Hana数据库扩展:	2	0.01%	0.00%
淘宝直播数据获取:	1	0.01%	0.00%
Canvas表格处理:	1	0.01%	0.00%
数电开票扩展(蒙柏):	1	0.01%	0.00%
大众点评解密操作:	1	0.01%	0.00%
阿普斯usb封装指令集:	1	0.01%	0.00%
In [100]:
# market_activity_map_robot_count 超过 1000个的指令集
print("引用超过 1000个应用的指令集")
activity_over_1000 = {k: v for k, v in market_activity_map_robot_count.items() if v > 1000}
for package_code, package_code_count in market_activity_map_robot_count.items():
    if package_code_count < 1000:
        continue
    print(f"{market_activity_detail_data.get(package_code)}:\t{package_code_count}")
引用超过 1000个应用的指令集
Excel扩展操作:	7887
列表扩展操作:	2460
日期时间扩展:	2181
网页扩展操作:	2125
登录扩展操作:	1870
弹窗智能侦测器:	1722
文件扩展功能:	1447
飞书电子表格(RPA):	1301
通用日期选择:	1205
数据库扩展操作:	1058
In [101]:
print("引用超过 100 - 1000应用的指令集")
activity_over_1000 = {
    k: v for k, v in market_activity_map_robot_count.items() if v > 1000
}
for package_code, package_code_count in market_activity_map_robot_count.items():
    if 100 < package_code_count < 1000:
        print(f"{market_activity_detail_data.get(package_code)}:\t{package_code_count}")
引用超过 100 - 1000应用的指令集
文本扩展功能:	984
XPath跨域获取网页元素:	867
滑块拼图验证码(免费):	815
个人微信:	782
并发调用子流程:	772
WPS 在线表格:	713
获取进程or杀进程:	701
应用帐号信息:	696
json数据提取:	684
紫鸟控制台操作:	649
图片扩展操作:	635
【付费】验证码识别(web):	579
飞书多维表格:	552
云码验证码扩展:	546
Cookie登录操作:	364
抖店操作:	359
数学函数操作:	321
钉钉在线表格操作:	320
懒加载操作:	282
SAP 扩展:	259
字典扩展操作:	253
拼多多数据获取:	253
MySQL扩展操作:	250
企业微信:	229
WPS 扩展:	224
钉钉云盘操作:	221
亚马逊卖家后台扩展操作:	214
计算机扩展:	210
Photoshop 操作:	181
钉钉机器人操作:	176
影刀离线OCR:	164
等待任意元素:	161
广告杀手:	160
消息推送:	159
PDF 扩展操作:	150
腾讯文档扩展:	137
动态调用:	135
(新版)生意参谋数据获取:	132
手机系统操作:	130
语音助手-edge-tts:	129
拼多多时间选择:	121
手机文件操作:	117
进度条扩展操作:	104

业务指令主要占 100 - 1000 的引用量

In [102]:
print("引用小于 100 应用的指令集")
activity_over_1000 = {
    k: v for k, v in market_activity_map_robot_count.items() if v > 1000
}
for package_code, package_code_count in market_activity_map_robot_count.items():
    if package_code_count < 100:
        print(f"{market_activity_detail_data.get(package_code)}:\t{package_code_count}")
引用小于 100 应用的指令集
鼠标扩展操作:	91
DataFrame表格扩展指令集:	90
京东商智扩展操作:	89
获取图表元素数据:	87
生意参谋常用操作:	76
Word 扩展:	76
万相台无界版:	73
浏览器扩展:	72
隐藏/显示浏览器窗口:	72
视频操作操作:	69
旺店通自定义操作:	68
Outlook 扩展操作:	67
抖音时间选择:	66
淘宝时间选择:	63
链接编码和解码:	60
罗盘.经营:	54
赤兔名品_时间选择:	50
Sqlite3 扩展操作:	48
翻译扩展操作:	48
生意参谋时间选择操作:	43
京东商智数据获取-商家版:	43
维格表操作:	40
HubStudio浏览器扩展操作:	39
软件(win)扩展:	35
天猫宝贝上架:	35
阿里妈妈多平台数据获取:	34
Sql Server 扩展:	33
断言:	31
二维码条形码:	30
PPT 扩展:	30
Redis 扩展:	29
免费OCR:	29
京东商智数据获取-品牌版:	29
打印机扩展:	28
异步下载图片:	27
唯品会指令集:	26
巨量千川:	25
京准通操作:	23
电子发票识别:	21
生意参谋扩展操作(win):	21
RAR解压缩操作:	21
汇率查询与转换:	20
物流信息分析:	20
紫鸟浏览器API:	18
PostgreSQL 扩展:	18
CSV扩展操作:	18
获取Windows凭据:	17
淘系推广时间选择:	15
引入指定应用python模块:	15
网银安全控件输入:	15
物流信息查询:	14
云码验证码扩展(win):	13
巨量百应数据扩展 (达人版):	12
京东商智数据获取-品牌店铺版:	12
Oracle 扩展操作:	11
飞鸽客服系统扩展:	11
云码验证码扩展(手机):	11
精选联盟数据扩展 (商家版):	11
谷歌recaptcha验证码:	11
淘系推广数据获取:	9
企业微信-服务端:	9
POST文件上传:	9
快手扩展:	8
巨量纵横:	8
京东金融时间选择:	8
千牛扩展:	7
天猫字体解密扩展:	7
直播弹幕扩展:	6
Matplotlib:	5
影刀离线NLP:	5
AI拓展操作:	4
旺店通数据查询—旗舰版接口:	4
WPS 多维表格:	4
SSH 隧道:	4
万象隐藏:	4
京准通数据获取:	4
旺店通数据查询—企业版接口:	3
电商罗盘数据获取:	3
百度智能云指令:	3
巨量纵横通用时间选择:	3
批量数据抓取(Java):	2
Hana数据库扩展:	2
淘宝直播数据获取:	1
Canvas表格处理:	1
数电开票扩展(蒙柏):	1
大众点评解密操作:	1
阿普斯usb封装指令集:	1
不同指令在市场指令的占比
In [103]:
used_activity_data = df['extension_names'].explode().dropna().tolist()
used_market_activity_data = [
    extension_name
    for extension_name in used_activity_data
    if any(key in extension_name for key in activity_code_keys)
]
print(f"总计使用市场自定义指令的数量: {len(used_market_activity_data)}")
print(f"使用市场指令在使用自定义指令应用的平均数: {len(used_market_activity_data)/used_market_activity_robot_count:.2f}")
总计使用市场自定义指令的数量: 75642
使用市场指令在使用自定义指令应用的平均数: 4.00
In [104]:
# 对原始数据进行解析
used_market_activity_detail_data = []
for item in used_market_activity_data:
    # print(item)
    _, package_code, activity_code=item.split(".", 2)
    used_market_activity_detail_data.append({"package_code": package_code, "activity_code": activity_code})
In [105]:
# 通过 package_code 统计 activity_details 中的活动数量
from collections import Counter

# 汇总 package_code 数量
summary = Counter(item["package_code"] for item in used_market_activity_detail_data)

# 输出结果
result = dict(summary)

# 将结果按数量从大到小排序
sorted_result = summary.most_common()


print("自定指令使用的条数分析")
for package_code, package_code_count in sorted_result:
    if package_code_count < 1000: continue
    print(f"{market_activity_detail_data.get(package_code)}: {package_code_count}")
自定指令使用的条数分析
Excel扩展操作: 23339
列表扩展操作: 4208
飞书电子表格(RPA): 3352
网页扩展操作: 2424
日期时间扩展: 2396
登录扩展操作: 2305
XPath跨域获取网页元素: 2075
弹窗智能侦测器: 2035
飞书多维表格: 1977
WPS 在线表格: 1949
文件扩展功能: 1675
数据库扩展操作: 1581
紫鸟控制台操作: 1503
通用日期选择: 1489
个人微信: 1302
SAP 扩展: 1114
文本扩展功能: 1104
钉钉在线表格操作: 1055
图片扩展操作: 1035

? 业务指令占比使用率比较低, 但是占用了大量的元素维护工作, 比如: 生意参谋操作, 京东生意参谋操作 (也有可能数据失真, 无法准确反映实际情况)

高频指令的热区分析

Excel 扩展指令
In [106]:
# 获取 activity_details中每一项 package_code 为activity_excel_v2 的item
activity_details_activity_excel_v2 = [item for item in used_market_activity_detail_data if item["package_code"] == "activity_excel_v2"]

# 根据 activity_code 统计数量
summary_activity_code = Counter(item["activity_code"] for item in activity_details_activity_excel_v2)

# 按顺序输出结果
sorted_summary_activity_code = summary_activity_code.most_common()
# 打印出来
for activity_code, used_market_activity_robot_count in sorted_summary_activity_code:
    print(f"{activity_code}: {used_market_activity_robot_count}")
C_01_筛选: 3463
A_01_单元格公式向下填充: 2857
D_03_查找数据所在行: 2230
C_03_清除筛选: 1864
C_05_删除筛选内容: 1710
C_04_读取筛选内容: 1661
B_02_内容替换: 1213
A_03_自动向下填充: 1211
D_02_查找数据所在列: 1209
B_04_区域文本转数字: 825
B_01_分列: 739
B_03_区域截图: 560
A_06_公式转换成值: 552
D_01_数字列名转换: 526
B_07_取消合并单元格: 398
A_04_单元格填充图片: 342
D_04_合成字典_列表拼接: 316
B_05_区域数字转文本: 285
A_02_单元格公式向右填充: 253
A_05_空白单元格填充: 185
D_12_冻结首行: 176
D_11_自动换行: 155
D_05_合成字典_数字累加: 91
C_02_筛选颜色: 75
B_14_获取合并单元格区域: 62
B_08_设置单元格超链接: 59
D_07_隐藏取消隐藏工作表: 58
D_06_删除所有图片: 48
B_10_导出单元格图片: 44
B_09_获取单元格超链接: 32
D_10_设置密码: 31
refresh_pivot_table: 28
B_11_删除单元格图片: 20
A_07_新建注释: 19
B_13_获取背景色: 14
D_08_获取隐藏的工作表名: 11
D_09_合并计算: 9
B_06_读取单元格注释: 6
D_13_设置切片器: 2
云码验证码指令
In [107]:
# 获取 activity_details中每一项 package_code 为activity_excel_v2 的item
activity_details_activity_excel_v2 = [
    item
    for item in used_market_activity_detail_data
    if item["package_code"] == "activity_jfbym"
]

# 根据 activity_code 统计数量
summary_activity_code = Counter(
    item["activity_code"] for item in activity_details_activity_excel_v2
)

# 按顺序输出结果
sorted_summary_activity_code = summary_activity_code.most_common()
# 打印出来
for activity_code, used_market_activity_robot_count in sorted_summary_activity_code:
    print(f"{activity_code}: {used_market_activity_robot_count}")
std_slider_captcha: 199
ali_slider_captcha: 110
dy_slider_captcha: 90
std_alphanum_captcha: 68
jd_rotate_captcha: 66
xhs_rotate_captcha: 47
jd_click_select_captcha: 45
std_trace_captcha: 44
std_click_select_captcha: 11
cs_word_order_click_select_captcha: 11
jd_click_select_captcha_original: 10
dy_double_rotate_captcha: 9
cs_space_same_object_captcha: 8
jd_trace_captcha: 6
chinatax_captcha: 4
ali_click_select_captcha: 3
cs_oocl_captcha: 3
cs_temu_captcha: 2
tx_six_squares_captcha: 2
orangebank_slider_captcha: 1

下一步

自定义指令分布的版本信息, 推测指令对应用的影响范围(暂无数据)

下架指令的依据

进步探索新的指令集