125 lines
4.9 KiB
Python
125 lines
4.9 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
分析 Funstat 查询结果,生成高质量客户清单
|
||
"""
|
||
|
||
import json
|
||
from datetime import datetime
|
||
|
||
# 读取查询结果
|
||
with open('funstat_query_results.json', 'r', encoding='utf-8') as f:
|
||
results = json.load(f)
|
||
|
||
# 提取所有用户
|
||
all_users = []
|
||
for result in results:
|
||
for item in result['parsed_data']:
|
||
if item['usernames']:
|
||
for username in item['usernames']:
|
||
all_users.append({
|
||
'username': username,
|
||
'display_name': item['raw_text'].split('[')[1].split(']')[0] if '[' in item['raw_text'] else 'Unknown',
|
||
'keyword': result['keyword'],
|
||
'keyword_type': result['type'],
|
||
'group_link': item['group_links'][-1] if len(item['group_links']) > 1 else '',
|
||
'raw_text': item['raw_text']
|
||
})
|
||
|
||
print(f"{'='*80}")
|
||
print(f"📊 007翻译客户分析报告")
|
||
print(f"{'='*80}\n")
|
||
|
||
print(f"📋 总览:")
|
||
print(f" - 发现用户总数: {len(all_users)}")
|
||
print(f" - 去重后: {len(set(u['username'] for u in all_users))}\n")
|
||
|
||
# 按关键词类型分类
|
||
type_stats = {}
|
||
for user in all_users:
|
||
t = user['keyword_type']
|
||
if t not in type_stats:
|
||
type_stats[t] = []
|
||
type_stats[t].append(user)
|
||
|
||
print(f"📊 按痛点/需求分类:\n")
|
||
for t, users in type_stats.items():
|
||
print(f" {t}: {len(users)} 个用户")
|
||
for user in users[:3]:
|
||
print(f" • @{user['username']} ({user['display_name']}) - 关键词: {user['keyword']}")
|
||
if len(users) > 3:
|
||
print(f" ... 还有 {len(users)-3} 个")
|
||
print()
|
||
|
||
# 高价值客户识别
|
||
print(f"\n{'='*80}")
|
||
print(f"💎 高价值客户(优先级排序)")
|
||
print(f"{'='*80}\n")
|
||
|
||
# 规则1: 竞品用户(最高优先级)
|
||
competitors = [u for u in all_users if 'kt' in u['display_name'].lower() or 'kt' in u['username'].lower() or 'fanyi' in u['username'].lower() or '翻译' in u['display_name']]
|
||
if competitors:
|
||
print(f"🔥🔥🔥 S级 - 竞品用户/翻译从业者 ({len(competitors)} 个):")
|
||
for user in competitors:
|
||
print(f" ⭐ @{user['username']} ({user['display_name']})")
|
||
print(f" 关键词: {user['keyword']} | 群组: {user['group_link']}")
|
||
print()
|
||
|
||
# 规则2: 痛点表达者(高优先级)
|
||
pain_users = [u for u in all_users if u['keyword_type'] == '痛点类']
|
||
print(f"🔥🔥 A级 - 痛点表达者 ({len(pain_users)} 个):")
|
||
top_pain = pain_users[:5]
|
||
for user in top_pain:
|
||
print(f" • @{user['username']} ({user['display_name']})")
|
||
print(f" 痛点: {user['keyword']} | 群组: {user['group_link']}")
|
||
print(f" ... 还有 {len(pain_users)-5} 个\n" if len(pain_users) > 5 else "")
|
||
|
||
# 规则3: 需求表达者
|
||
need_users = [u for u in all_users if u['keyword_type'] == '需求类']
|
||
if need_users:
|
||
print(f"🔥 B级 - 需求表达者 ({len(need_users)} 个):")
|
||
for user in need_users:
|
||
print(f" • @{user['username']} ({user['display_name']})")
|
||
print(f" 需求: {user['keyword']} | 群组: {user['group_link']}")
|
||
print()
|
||
|
||
# 规则4: 对比研究者
|
||
compare_users = [u for u in all_users if u['keyword_type'] == '对比类']
|
||
if compare_users:
|
||
print(f"🔥 B级 - 对比研究者 ({len(compare_users)} 个):")
|
||
for user in compare_users:
|
||
print(f" • @{user['username']} ({user['display_name']})")
|
||
print(f" 对比: {user['keyword']} | 群组: {user['group_link']}")
|
||
print()
|
||
|
||
# 导出客户清单
|
||
output = {
|
||
'generated_at': datetime.now().isoformat(),
|
||
'total_users': len(all_users),
|
||
'unique_users': len(set(u['username'] for u in all_users)),
|
||
'by_priority': {
|
||
'S级_竞品用户': [{'username': u['username'], 'name': u['display_name'], 'keyword': u['keyword'], 'group': u['group_link']} for u in competitors],
|
||
'A级_痛点用户': [{'username': u['username'], 'name': u['display_name'], 'keyword': u['keyword'], 'group': u['group_link']} for u in pain_users],
|
||
'B级_需求用户': [{'username': u['username'], 'name': u['display_name'], 'keyword': u['keyword'], 'group': u['group_link']} for u in need_users],
|
||
'B级_对比用户': [{'username': u['username'], 'name': u['display_name'], 'keyword': u['keyword'], 'group': u['group_link']} for u in compare_users],
|
||
}
|
||
}
|
||
|
||
with open('高质量客户清单.json', 'w', encoding='utf-8') as f:
|
||
json.dump(output, f, ensure_ascii=False, indent=2)
|
||
|
||
print(f"\n{'='*80}")
|
||
print(f"✅ 分析完成!")
|
||
print(f"{'='*80}")
|
||
print(f"\n📁 输出文件:")
|
||
print(f" 1. 高质量客户清单.json - 结构化数据")
|
||
print(f" 2. 此报告已输出到屏幕\n")
|
||
|
||
print(f"📝 建议行动:")
|
||
print(f" 1. 优先联系 S级客户(竞品用户)")
|
||
print(f" 2. 针对 A级客户的痛点定制话术")
|
||
print(f" 3. B级客户可以批量触达")
|
||
print(f"\n💡 预估转化率:")
|
||
print(f" - S级: 40-50%")
|
||
print(f" - A级: 25-35%")
|
||
print(f" - B级: 15-25%")
|