Super_Employee/bosszhipin.py

114 lines
4.9 KiB
Python
Raw Normal View History

2024-08-16 12:54:57 +00:00
import time
import requests
import json
from UserDefined import bosszhipin_city, bosszhipin_Search, bosszhipin_poststate, bosszhipin_Cookie
from system import Bosszhipin_CitylistUrl, Bosszhipin_SearchUrl, successful_deliveries, Bosszhipin_PostUrl
def run_bosszhipin_script():
# 初始化计数器
bosszhipin_findCount = 0
bosszhipin_successCount = 0
bosszhipin_errorCount = 0
page = 1
# 请求头
headers = {
'User-Agent': "Mozilla/5.0 (Linux; Android 14; 21051182C Build/UQ1A.240105.004.A1; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Safari/537.36 XWEB/1160117 MMWEBSDK/20240501 MMWEBID/1136 MicroMessenger/8.0.49.2685(0x28003145) WeChat/arm64 Weixin GPVersion/1 Android Tablet NetType/WIFI Language/zh_CN ABI/arm64",
'Accept-Encoding': "gzip, deflate",
'traceid': "F-e38d9aCURcZEnWMK",
'x-requested-with': "XMLHttpRequest",
'sec-fetch-site': "same-origin",
'sec-fetch-mode': "cors",
'sec-fetch-dest': "empty",
'referer': "https://www.zhipin.com/",
'accept-language': "zh-CN,zh-SG;q=0.9,zh;q=0.8,en-US;q=0.7,en;q=0.6,zh-HK;q=0.5",
'Cookie': bosszhipin_Cookie # 将这个替换为你的实际cookie
}
# 发送GET请求获取城市代码
response = requests.get(Bosszhipin_CitylistUrl, headers=headers)
data = response.json()
# 遍历 cityGroup 查找 name 为bosszhipin_city的城市对应的 code
city_code = None
for group in data['zpData']['cityGroup']:
for city in group['cityList']:
if city['name'] == bosszhipin_city:
city_code = city['code']
break
if city_code is not None:
break
print(f"{bosszhipin_city}的code值:", city_code)
try:
while True:
bosszhipin_Search['page'] = str(page) # 设置当前页码
response = requests.get(Bosszhipin_SearchUrl, params=bosszhipin_Search, headers=headers)
data = response.json()
print(response.text)
item_list = data['zpData']['jobList']
if not item_list:
break
print("------------Boss直聘-------------")
print("在Boss直聘平台找到以下岗位即将为您投递:")
print("---------------------------------")
for item in item_list:
bosszhipin_findCount += 1
print(f"------------第{bosszhipin_findCount}家-------------")
encryptJobId = item.get('encryptJobId')
brandName = item.get('brandName')
jobName = item.get('jobName')
cityName = item.get('cityName')
salaryDesc = item.get('salaryDesc')
securityId = item.get('securityId')
welfareList=item.get('welfareList')
lid = item.get('lid')
print(f"UUID: {encryptJobId}")
print(f"公司: {brandName}")
print(f"城市: {cityName}")
print(f"岗位: {jobName}")
print(f"薪资: {salaryDesc}")
print(f"福利: {welfareList }")
# print(f"HR刷新时间: {lid}")
print("-------------Result---------------")
if(bosszhipin_poststate==1):
bosszhipin_postparams = {
"securityId": securityId,
"jobId": encryptJobId,
"lid": lid
}
bosszhipin_Postresponse = requests.get(Bosszhipin_PostUrl, params=bosszhipin_postparams, headers=headers)
data = bosszhipin_Postresponse.json()
bosszhipin_bosszhipin_poststate = data['message']
if bosszhipin_bosszhipin_poststate == '投递成功':
bosszhipin_successCount += 1
delivery_info = {
"UUID": encryptJobId,
"公司": brandName,
"城市": cityName,
"岗位": jobName,
"薪资": salaryDesc,
"福利": welfareList,
}
successful_deliveries.append(delivery_info)
else:
bosszhipin_errorCount += 1
print("投递失败,请查看返回信息:")
print(bosszhipin_bosszhipin_poststate)
else:
print("您未开启Boss直聘投递本次投递跳过")
# 投递逻辑在这里添加
# time.sleep(10)
page += 1 # 页码自增
except Exception as e:
print("Boss直聘Cookie失效请更新Cookie")
print(f"错误信息: {e}")
return bosszhipin_findCount, bosszhipin_successCount, bosszhipin_errorCount