Super_Employee/maimai.py

146 lines
7.3 KiB
Python
Raw Normal View History

2024-08-17 14:12:35 +00:00
# main_script.py
import requests
import json
from UserDefined import maimai_poststate, maimai_Cookie, maimai_Search, deviceName, maimai_Token, maimai_postnumber
2024-08-17 14:12:35 +00:00
from system import successful_deliveries,maimai_SearchUrl,maimai_PostUrl
def run_maimai_script():
# 初始化变量
maimai_successCount = 0
maimai_errorCount = 0
maimai_findCount = 0
page = 1
# 请求头
maimai_headers = {
'User-Agent': "ReactNative//{"+deviceName+"} [Android 14/34]/MaiMai 6.6.10(60610)",
'Connection': "Keep-Alive",
'Accept-Encoding': "gzip",
'content-type': "application/x-www-form-urlencoded",
'x-maimai-reqid': "776e6ed0252b42bfba9c0772b4d574cf",
'Cookie': maimai_Cookie
}
while True:
maimai_Search['page'] = str(page) # 设置当前页码
# response = requests.get(yizhanchi_SearchUrl, params=yizhanchi_Search, headers=headers)
# 发送 GET 请求
maimai_SearchResponse = requests.get(maimai_SearchUrl, params=maimai_Search, headers=maimai_headers)
# payload = json.dumps(maimai_Search)
# maimai_SearchResponse = requests.post(maimai_SearchUrl, data=payload, headers=maimai_headers)
# print(maimai_SearchResponse.text)
# 检查请求是否成功
if maimai_SearchResponse.status_code == 200:
# data = maimai_SearchResponse.json()
try:
data = maimai_SearchResponse.json()
items = data['data']
if maimai_successCount>=maimai_postnumber:
break
2024-08-17 14:12:35 +00:00
if not items:
break
uuid_list = [item['ejid'] for item in items]
company_list = [item['company'] for item in items]
job_list = [item['position'] for item in items]
salary_desc_list = [item['salary_info'] for item in items]
attraction_list = [item['custom_text'] for item in items]
city_list = [item['city'] for item in items]
print("------------脉脉-------------")
print("在脉脉平台找到以下岗位,即将为您投递:")
print("---------------------------------")
for uuid, company, job, salary_desc, attraction, city in zip(uuid_list, company_list, job_list, salary_desc_list, attraction_list, city_list):
attraction_str = json.dumps(attraction, ensure_ascii=False)
# group_items = group_data['msg']['resume']
# deliver_able_list = [item['deliver_able'] for item in group_items]
# group_list = [item['group_uuid'] for item in group_items]
# deliver_able_online = deliver_able_list[0] if len(deliver_able_list) > 0 else False
# deliver_able_local = deliver_able_list[1] if len(deliver_able_list) > 1 else False
maimai_findCount=maimai_findCount + 1
print(f"------------第{maimai_findCount}家-------------")
print(f"UUID: {uuid}")
print(f"公司: {company}")
print(f"城市: {city}")
print(f"岗位: {job}")
print(f"薪资: {salary_desc}")
print(f"福利: {attraction_str}")
# print(f"在线简历投递状态: {'可投递' if deliver_able_online else '不可投递'}")
# print(f"本地简历投递状态: {'可投递' if deliver_able_local else '不可投递'}")
print("-------------Result---------------")
# usegroup = None # 初始化 usegroup
# if (maimai_poststate == 1 and deliver_able_online) or (maimai_poststate == 2 and not deliver_able_local and deliver_able_online):
# usegroup = group_list[0]
# elif (maimai_poststate == 1 and not deliver_able_online and deliver_able_local) or (maimai_poststate == 2 and deliver_able_local):
# usegroup = group_list[1]
# elif (maimai_poststate == 0 and (deliver_able_online or deliver_able_local)):
# usegroup = None
if (maimai_poststate==1):
maimai_Postpayload = {
'access_token': maimai_Token,
'appid': "3",
'channel': "MyAPP",
'ejid': uuid,
'fr': "big_search_job_tab",
'resume_check': "0",
'rn': "1",
'u': "",
'version': "6.6.10",
'webviewUserAgent': "Mozilla/5.0 (Linux; Android 14; 21051182C Build/UQ1A.240105.004.A1; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/128.0.6613.40 Safari/537.36"
}
maimai_PostResponse = requests.post(maimai_PostUrl, data=maimai_Postpayload, headers=maimai_headers)
try:
data = maimai_PostResponse.json()
maimai_maimai_poststate = data['result']
if maimai_maimai_poststate == 'ok':
maimai_successCount += 1
delivery_info = {
"UUID": uuid,
"公司": company,
"城市": city,
"岗位": job,
"薪资": salary_desc,
"福利": attraction_str,
# "投递来自": "在线简历" if usegroup == group_list[0] else "本地简历"
}
successful_deliveries.append(delivery_info)
except Exception as e:
print("脉脉中没有相关工作,请尝试放宽筛选")
print(f"错误信息: {e}")
maimai_errorCount += 1
# print(maimai_maimai_poststate)
else:
if maimai_poststate == 0:
print("您未开启脉脉投递,本次投递跳过")
# elif maimai_poststate in [1, 2]:
# print("您已投递过该公司,本次投递跳过")
# maimai_Groupid = {'inuuid': uuid}
# maimai_GroupResponse = requests.get(maimai_GroupUrl, params=maimai_Groupid, headers=maimai_headers)
# if maimai_GroupResponse.status_code == 200:
# group_data = maimai_GroupResponse.json()
# except KeyError as e:
# print(f"获取投递状态数据失败: {e}")
# else:
# print(f"投递状态请求失败HTTP状态码: {maimai_GroupResponse.status_code}")
except Exception as e:
print("脉脉中没有相关工作,请尝试放宽筛选")
print(f"错误信息: {e}")
else:
print(f"请求失败HTTP状态码: {maimai_SearchResponse.status_code}")
page += 1
return maimai_findCount, maimai_successCount, maimai_errorCount