|
|
@@ -31,7 +31,28 @@ async def get_account_fans_portrait(
|
|
|
timeout: Optional[float] = None,
|
|
|
) -> ToolResult:
|
|
|
"""
|
|
|
- 获取抖音账号粉丝画像
|
|
|
+ 获取抖音账号粉丝画像(热点宝数据)
|
|
|
+
|
|
|
+ Args:
|
|
|
+ account_id: 抖音账号ID(使用 author.sec_uid)
|
|
|
+ need_province: 是否获取省份分布,默认 False
|
|
|
+ need_city: 是否获取城市分布,默认 False
|
|
|
+ need_city_level: 是否获取城市等级分布(一线/新一线/二线等),默认 False
|
|
|
+ need_gender: 是否获取性别分布,默认 False
|
|
|
+ need_age: 是否获取年龄分布,默认 True
|
|
|
+ need_phone_brand: 是否获取手机品牌分布,默认 False
|
|
|
+ need_phone_price: 是否获取手机价格分布,默认 False
|
|
|
+ timeout: 超时时间(秒),默认 60
|
|
|
+
|
|
|
+ Returns:
|
|
|
+ ToolResult: 包含粉丝画像数据
|
|
|
+ - ratio: 占比(百分比)
|
|
|
+ - tgi (偏好度): > 1.0 表示该人群偏好高于平均水平,< 1.0 表示低于平均
|
|
|
+ 例如:50岁以上 tgi=1.5 表示该账号粉丝中50岁以上人群的占比是全平台平均的1.5倍
|
|
|
+
|
|
|
+ 注意:
|
|
|
+ - 默认只返回年龄分布,需要其他维度时设置对应参数为 True
|
|
|
+ - 省份数据只显示 TOP5
|
|
|
"""
|
|
|
try:
|
|
|
payload = {
|
|
|
@@ -47,15 +68,6 @@ async def get_account_fans_portrait(
|
|
|
|
|
|
request_timeout = timeout if timeout is not None else DEFAULT_TIMEOUT
|
|
|
|
|
|
- # async with httpx.AsyncClient(timeout=request_timeout) as client:
|
|
|
- # response = await client.post(
|
|
|
- # ACCOUNT_FANS_PORTRAIT_API,
|
|
|
- # json=payload,
|
|
|
- # headers={"Content-Type": "application/json"},
|
|
|
- # )
|
|
|
- # response.raise_for_status()
|
|
|
- # data = response.json()
|
|
|
-
|
|
|
response = requests.post(
|
|
|
ACCOUNT_FANS_PORTRAIT_API,
|
|
|
json=payload,
|
|
|
@@ -146,7 +158,28 @@ async def get_content_fans_portrait(
|
|
|
timeout: Optional[float] = None,
|
|
|
) -> ToolResult:
|
|
|
"""
|
|
|
- 获取抖音内容点赞用户画像
|
|
|
+ 获取抖音内容点赞用户画像(热点宝数据)
|
|
|
+
|
|
|
+ Args:
|
|
|
+ content_id: 抖音内容ID(使用 aweme_id)
|
|
|
+ need_province: 是否获取省份分布,默认 False
|
|
|
+ need_city: 是否获取城市分布,默认 False
|
|
|
+ need_city_level: 是否获取城市等级分布(一线/新一线/二线等),默认 False
|
|
|
+ need_gender: 是否获取性别分布,默认 False
|
|
|
+ need_age: 是否获取年龄分布,默认 True
|
|
|
+ need_phone_brand: 是否获取手机品牌分布,默认 False
|
|
|
+ need_phone_price: 是否获取手机价格分布,默认 False
|
|
|
+ timeout: 超时时间(秒),默认 60
|
|
|
+
|
|
|
+ Returns:
|
|
|
+ ToolResult: 包含点赞用户画像数据
|
|
|
+ - ratio: 占比(百分比)
|
|
|
+ - tgi (偏好度): > 1.0 表示该人群偏好高于平均水平,< 1.0 表示低于平均
|
|
|
+ 例如:50岁以上 tgi=1.5 表示该视频点赞用户中50岁以上人群的占比是全平台平均的1.5倍
|
|
|
+
|
|
|
+ 注意:
|
|
|
+ - 默认只返回年龄分布,需要其他维度时设置对应参数为 True
|
|
|
+ - 省份数据只显示 TOP5
|
|
|
"""
|
|
|
try:
|
|
|
payload = {
|
|
|
@@ -162,15 +195,6 @@ async def get_content_fans_portrait(
|
|
|
|
|
|
request_timeout = timeout if timeout is not None else DEFAULT_TIMEOUT
|
|
|
|
|
|
- # async with httpx.AsyncClient(timeout=request_timeout) as client:
|
|
|
- # response = await client.post(
|
|
|
- # CONTENT_FANS_PORTRAIT_API,
|
|
|
- # json=payload,
|
|
|
- # headers={"Content-Type": "application/json"},
|
|
|
- # )
|
|
|
- # response.raise_for_status()
|
|
|
- # data = response.json()
|
|
|
-
|
|
|
response = requests.post(
|
|
|
CONTENT_FANS_PORTRAIT_API,
|
|
|
json=payload,
|
|
|
@@ -246,16 +270,3 @@ async def get_content_fans_portrait(
|
|
|
output="",
|
|
|
error=str(e),
|
|
|
)
|
|
|
-
|
|
|
-# async def main():
|
|
|
-# # result = await get_account_fans_portrait(
|
|
|
-# # account_id="MS4wLjABAAAAXvRdWJsdPKkh9Ja3ZirxoB8pAaxNXUXs1KUe14gW0IoqDz-D-fG0xZ8c5kSfTPXx"
|
|
|
-# # )
|
|
|
-# # print(result.output)
|
|
|
-# result = await get_content_fans_portrait(
|
|
|
-# content_id="7495776724350405928"
|
|
|
-# )
|
|
|
-# print(result.output)
|
|
|
-#
|
|
|
-# if __name__ == "__main__":
|
|
|
-# asyncio.run(main())
|