Super_Employee/bosszhipin.py
2024-08-16 20:54:57 +08:00

114 lines
4.9 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.

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