|
@@ -30,120 +30,124 @@ class QplKs:
|
|
|
'Accept': 'application/json',
|
|
|
'Accept-Language': 'zh-CN,zh;q=0.9',
|
|
|
'Content-Type': 'application/json',
|
|
|
- 'Cookie': 'did=web_9c6a04a4004fdb7c95a658a56ed275b6; didv=1711519980000; apdid=328ac94f-4040-41fe-a038-b60140291aca99fb22e9862c74736f53d57b666ee53b:1719580529:1; language=zh-CN; ud=2205012540; app_id=ks686235996059836592; expire_time=1800; userId=2574854626; access_token=ChFvYXV0aC5hY2Nlc3NUb2tlbhIw_udZziw8HOh4U0o0WCfzpedDFI8kxpzxIBDWKVcHSLl3CMo-cd3EZ3NiAga2_iwdGhIgQfvkqD5FqqWtQ2y0WGxSDjAiIHiWTCrCAkIo1TCQBj86fzBQzXnHCB_yplzArTKHIMzbKAUwAQ; nc_user_id=CiVhZC5ub3RpZnkuY2VudGVyLm9hdXRoLnVzZXIuaWQuc2VjcmV0EiCvobb+fVYYwtCYKsf+mX20zN6suQFLe2M1LXGeHAlWZBoSVM0G49/nJB/JmO0PwfOBK4qSIiCBBpQGJdpxBHdVNj7YLARdxkJ4HmillU9+D5S9vVlsSigFMAE=; kuaishou.ad.social_st=ChVrdWFpc2hvdS5hZC5zb2NpYWwuc3QSoAEqEbh762nhDKS1eTc-dqLlcbzwfEJSNxogQ2rgbqvb63xgQyz7U0ikGgN_r5hsOCuYQupi5PkEqOzFmB_9gYJnYjjyH50TWQjcHFgv0eVl4Dwh6tVFvz7XWi6xpFJEQ_SUU960P6KVG2cu9uhyMfVRRPbGSHJuQoi08cd1BaPYBkRJmBLbNf2IMB4bZwudF_3DlbbSfi2PYhoNpG0xVdRdGhIFcNIwV0BDDJn-zdzp3B-cqPIiIOO8CYtWIKOg8Bo5mfUyrJzIkN6eZqbKtNIGuQsj3oWuKAUwAQ; kuaishou.ad.social_ph=df0e43b95caa8ff41e6cdb3b0f1b7b93c071; did=web_9c6a04a4004fdb7c95a658a56ed275b6; didv=1711522726000',
|
|
|
+ 'Cookie': 'did=web_9c6a04a4004fdb7c95a658a56ed275b6; didv=1711519980000; apdid=328ac94f-4040-41fe-a038-b60140291aca99fb22e9862c74736f53d57b666ee53b:1719580529:1; language=zh-CN; ud=2205012540; app_id=ks686235996059836592; expire_time=1800; userId=2574854626; access_token=ChFvYXV0aC5hY2Nlc3NUb2tlbhIwIRvxysHMF86NQiMYMtw1_s0zM4gAEA9_4VrJixHfjYqD8RBNius0YXow_kWI0B8sGhINVY3cQVhC4YDnv5YNyfZ0IKwiIObPEx_s6MCNTBHJclEO0mnOPHspy1vnwt-9536AWyqYKAUwAQ; nc_user_id=CiVhZC5ub3RpZnkuY2VudGVyLm9hdXRoLnVzZXIuaWQuc2VjcmV0EiAtVd5hI6zlT9/UG3HxzRPGDpAxZul8rkwLeQzpGx4y5xoS0fOAqkTADrggSZ6ZpciI2NO9IiBQFbr8Uk6ApRwM5LcFRtS+AAj/QbpiELCRBW7L200+nCgFMAE=; kuaishou.ad.social_st=ChVrdWFpc2hvdS5hZC5zb2NpYWwuc3QSoAFByWIrb3A2KGuX_eJCqlJa6wQTlc2l7mp_MQN_5RLJ4INIE2O3-v18nVEBafp8VK9sY5-ExW_XMpfak7gT8EoI0ft5snPqXur9Ki4gVWIbK-Z-VkyQFkAaD6qB-VtBsqiUoHEmAI9s1H-1kLMKYTCwBUbPH8TsBbnPQw0Lg8NvSQ2Gl4_DP0uA4ouuPFjKJtcoEs9SEz9VbPFfC7X0iDQFGhIk8-y_Rw9CUpd3ZdyZev2LvtUiIKLFKmL283X9GwjqcIMqjlF3erFhqI1QIA9aK-z1gQh3KAUwAQ; kuaishou.ad.social_ph=8764c8e6b60f8cff08b469a56da3fdbe2482; did=web_9c6a04a4004fdb7c95a658a56ed275b6; didv=1711522726000',
|
|
|
'Origin': 'https://k.kuaishou.com',
|
|
|
'Pragma': 'no-cache',
|
|
|
'Referer': 'https://k.kuaishou.com/',
|
|
|
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36',
|
|
|
}
|
|
|
- for count in fans_count:
|
|
|
- (fans_min_num, fans_max_num), = count.items()
|
|
|
- for content in content_type:
|
|
|
- (content_name, content_id), = content.items()
|
|
|
- current_page = 1
|
|
|
- while True:
|
|
|
- payload_data = {
|
|
|
- "currentPage": current_page,
|
|
|
- "pageSize": 20,
|
|
|
- "starOrderTag": 3,
|
|
|
- "taskType": 1,
|
|
|
- "marketingGoal": 1,
|
|
|
- "viewerAgeList": [ # 观众画像 50+
|
|
|
- {
|
|
|
- "from": "0.50",
|
|
|
- "to": "1.00",
|
|
|
- "queryName": "50+"
|
|
|
- }
|
|
|
- ],
|
|
|
- "userName": "",
|
|
|
- "vitalityTags": [ # 活跃度 近期短视频活跃
|
|
|
- "668"
|
|
|
- ],
|
|
|
- "contentTagIdList": [ # 内容类型
|
|
|
- {
|
|
|
- "id": str(content_id),
|
|
|
- "selectFirstLevelId": True
|
|
|
- }
|
|
|
- ],
|
|
|
- # "fansMinNum": 1000000, # 粉丝数量
|
|
|
- # "fansMaxNum": 3000000, # 粉丝数量
|
|
|
- }
|
|
|
- if fans_min_num > 0:
|
|
|
- payload_data["fansMinNum"] = fans_min_num
|
|
|
- if fans_max_num > 0:
|
|
|
- payload_data["fansMaxNum"] = fans_max_num
|
|
|
- payload = json.dumps(payload_data)
|
|
|
-
|
|
|
- time.sleep(random.randint(10, 20))
|
|
|
- response = requests.request("POST", url, headers=headers, data=payload)
|
|
|
- response = response.json()
|
|
|
- print(f"开始扫描{content}")
|
|
|
-
|
|
|
- result = response["result"]
|
|
|
- if result == 1:
|
|
|
- total = response["total"] # 总条数
|
|
|
- if total == 0:
|
|
|
- print(f"没有扫描到数据{content}")
|
|
|
+ # for count in fans_count:
|
|
|
+ # (fans_min_num, fans_max_num), = count.items()
|
|
|
+ for content in content_type:
|
|
|
+ (content_name, content_id), = content.items()
|
|
|
+ current_page = 1
|
|
|
+ while True:
|
|
|
+ payload_data = {
|
|
|
+ "currentPage": current_page,
|
|
|
+ "pageSize": 20,
|
|
|
+ "starOrderTag": 3,
|
|
|
+ "taskType": 1,
|
|
|
+ "marketingGoal": 1,
|
|
|
+ "viewerAgeList": [ # 观众画像 50+
|
|
|
+ {
|
|
|
+ "from": "0.50",
|
|
|
+ "to": "1.00",
|
|
|
+ "queryName": "50+"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "userName": "",
|
|
|
+ "vitalityTags": [ # 活跃度 近期短视频活跃
|
|
|
+ "668"
|
|
|
+ ],
|
|
|
+ "contentTagIdList": [ # 内容类型
|
|
|
+ {
|
|
|
+ "id": str(content_id),
|
|
|
+ "selectFirstLevelId": True
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "starTagIds": [ # 高调性
|
|
|
+ 13
|
|
|
+ ]
|
|
|
+ # "fansMinNum": 1000000, # 粉丝数量
|
|
|
+ # "fansMaxNum": 3000000, # 粉丝数量
|
|
|
+ }
|
|
|
+ # if fans_min_num > 0:
|
|
|
+ # payload_data["fansMinNum"] = fans_min_num
|
|
|
+ # if fans_max_num > 0:
|
|
|
+ # payload_data["fansMaxNum"] = fans_max_num
|
|
|
+ payload = json.dumps(payload_data)
|
|
|
+
|
|
|
+ time.sleep(random.randint(10, 20))
|
|
|
+ response = requests.request("POST", url, headers=headers, data=payload)
|
|
|
+ response = response.json()
|
|
|
+ print(f"开始扫描{content}")
|
|
|
+
|
|
|
+ result = response["result"]
|
|
|
+ if result == 1:
|
|
|
+ total = response["total"] # 总条数
|
|
|
+ if total == 0:
|
|
|
+ print(f"没有扫描到数据{content}")
|
|
|
+ break
|
|
|
+ star_list = response["starList"]
|
|
|
+ if len(star_list) == 0 or star_list == []:
|
|
|
+ break
|
|
|
+ for star in star_list:
|
|
|
+ print(f"扫描到一条数据{content}")
|
|
|
+ user_id = star["userId"]
|
|
|
+ star_id = star["starId"]
|
|
|
+ name = star["name"] # 用户名
|
|
|
+ kwai_id = star["kwaiId"] # 用户名id
|
|
|
+ gender = star["gender"] # 性别
|
|
|
+ fans_number = star["fansNumber"] # 粉丝数
|
|
|
+ profile_id = star["profileId"] # 主页id
|
|
|
+ star_tag_str = star["starTagStr"] # 内容类型1
|
|
|
+ industry_tag_str = star["industryTagStr"] # 内容类型2
|
|
|
+ photo_expect_play = star["photoExpectPlay"] # 预期播放量
|
|
|
+ photo_expect_cpm = star["photoExpectCpm"] # 预期CPM
|
|
|
+ photo_interaction_rate = star["photoInteractionRate"] # 互动率
|
|
|
+ photo_complete_play_rate = star["photoCompletePlayRate"] # 完播率
|
|
|
+ fans_increase_num = star["fansIncreaseNum"] # 粉丝增长量
|
|
|
+ fans_increase_rate = star["fansIncreaseRate"] # 粉丝增长率
|
|
|
+ # res = sqlCollect.insert_ks_qpl_data(user_id, star_id, name, kwai_id, gender, fans_number, profile_id, star_tag_str, industry_tag_str, photo_expect_play, photo_expect_cpm, photo_interaction_rate, photo_complete_play_rate, fans_increase_num, fans_increase_rate)
|
|
|
+ # if res == 1:
|
|
|
+ current_time = datetime.now()
|
|
|
+ formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
|
|
|
+ # if fans_min_num == 0:
|
|
|
+ # fans = f"{fans_max_num}及以下"
|
|
|
+ # if fans_max_num == 0:
|
|
|
+ # fans = f"{fans_min_num}及以上"
|
|
|
+ # else:
|
|
|
+ # fans = f"{fans_min_num}~{fans_max_num}"
|
|
|
+ values = [
|
|
|
+ [
|
|
|
+ name,
|
|
|
+ gender,
|
|
|
+ fans_number,
|
|
|
+ profile_id,
|
|
|
+ "https://www.kuaishou.com/profile/"+profile_id,
|
|
|
+ star_tag_str,
|
|
|
+ industry_tag_str,
|
|
|
+ photo_expect_play,
|
|
|
+ photo_expect_cpm,
|
|
|
+ photo_interaction_rate,
|
|
|
+ photo_complete_play_rate,
|
|
|
+ fans_increase_num,
|
|
|
+ fans_increase_rate,
|
|
|
+ # fans,
|
|
|
+ formatted_time
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ Feishu.insert_columns("GjGZsmW2ahaCe4tmzDTc58tVnbe", "emf56g", "ROWS", 1, 2)
|
|
|
+ time.sleep(0.5)
|
|
|
+ Feishu.update_values("GjGZsmW2ahaCe4tmzDTc58tVnbe", "emf56g", "A2:Z2", values)
|
|
|
+ print(f"入库到一条数据{content}")
|
|
|
+ current_page += 1
|
|
|
+ if total < 20:
|
|
|
+ break
|
|
|
+ else:
|
|
|
+ page = int(total)/20
|
|
|
+ if current_page > int(page)+1:
|
|
|
break
|
|
|
- star_list = response["starList"]
|
|
|
- if len(star_list) == 0 or star_list == []:
|
|
|
- break
|
|
|
- for star in star_list:
|
|
|
- print(f"扫描到一条数据{content}")
|
|
|
- user_id = star["userId"]
|
|
|
- star_id = star["starId"]
|
|
|
- name = star["name"] # 用户名
|
|
|
- kwai_id = star["kwaiId"] # 用户名id
|
|
|
- gender = star["gender"] # 性别
|
|
|
- fans_number = star["fansNumber"] # 粉丝数
|
|
|
- profile_id = star["profileId"] # 主页id
|
|
|
- star_tag_str = star["starTagStr"] # 内容类型1
|
|
|
- industry_tag_str = star["industryTagStr"] # 内容类型2
|
|
|
- photo_expect_play = star["photoExpectPlay"] # 预期播放量
|
|
|
- photo_expect_cpm = star["photoExpectCpm"] # 预期CPM
|
|
|
- photo_interaction_rate = star["photoInteractionRate"] # 互动率
|
|
|
- photo_complete_play_rate = star["photoCompletePlayRate"] # 完播率
|
|
|
- fans_increase_num = star["fansIncreaseNum"] # 粉丝增长量
|
|
|
- fans_increase_rate = star["fansIncreaseRate"] # 粉丝增长率
|
|
|
- res = sqlCollect.insert_ks_qpl_data(user_id, star_id, name, kwai_id, gender, fans_number, profile_id, star_tag_str, industry_tag_str, photo_expect_play, photo_expect_cpm, photo_interaction_rate, photo_complete_play_rate, fans_increase_num, fans_increase_rate)
|
|
|
- if res == 1:
|
|
|
- current_time = datetime.now()
|
|
|
- formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
|
|
|
- if fans_min_num == 0:
|
|
|
- fans = f"{fans_max_num}及以下"
|
|
|
- if fans_max_num == 0:
|
|
|
- fans = f"{fans_min_num}及以上"
|
|
|
- else:
|
|
|
- fans = f"{fans_min_num}~{fans_max_num}"
|
|
|
- values = [
|
|
|
- [
|
|
|
- name,
|
|
|
- gender,
|
|
|
- fans_number,
|
|
|
- "https://www.kuaishou.com/profile/"+profile_id,
|
|
|
- star_tag_str,
|
|
|
- industry_tag_str,
|
|
|
- photo_expect_play,
|
|
|
- photo_expect_cpm,
|
|
|
- photo_interaction_rate,
|
|
|
- photo_complete_play_rate,
|
|
|
- fans_increase_num,
|
|
|
- fans_increase_rate,
|
|
|
- fans,
|
|
|
- formatted_time
|
|
|
- ]
|
|
|
- ]
|
|
|
- Feishu.insert_columns("GjGZsmW2ahaCe4tmzDTc58tVnbe", "4a9d77", "ROWS", 1, 2)
|
|
|
- time.sleep(0.5)
|
|
|
- Feishu.update_values("GjGZsmW2ahaCe4tmzDTc58tVnbe", "4a9d77", "A2:Z2", values)
|
|
|
- current_page += 1
|
|
|
- print(f"入库到一条数据{content}")
|
|
|
- if total < 20:
|
|
|
- break
|
|
|
- else:
|
|
|
- page = int(total)/20
|
|
|
- if current_page > int(page):
|
|
|
- break
|
|
|
|
|
|
|
|
|
|