2024-08-16 12:54:57 +00:00
|
|
|
|
|
|
|
|
|
import time
|
|
|
|
|
import requests
|
|
|
|
|
import json
|
2024-08-17 17:06:51 +00:00
|
|
|
|
from UserDefined import bosszhipin_city, bosszhipin_Search, bosszhipin_poststate, bosszhipin_Cookie, \
|
|
|
|
|
bosszhipin_postnumber
|
2024-08-16 12:54:57 +00:00
|
|
|
|
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']
|
|
|
|
|
|
2024-08-17 17:06:51 +00:00
|
|
|
|
if bosszhipin_successCount>=bosszhipin_postnumber:
|
|
|
|
|
break
|
2024-08-16 12:54:57 +00:00
|
|
|
|
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
|