Super_Employee/maimai.py
2024-08-18 01:06:51 +08:00

146 lines
7.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# main_script.py
import requests
import json
from UserDefined import maimai_poststate, maimai_Cookie, maimai_Search, deviceName, maimai_Token, maimai_postnumber
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
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