106 lines
4.0 KiB
Python
106 lines
4.0 KiB
Python
import sys, os
|
|
import time
|
|
import pandas as pd
|
|
project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
|
|
if project_root not in sys.path:
|
|
sys.path.insert(0, project_root)
|
|
|
|
from web.Requests_Except import MR
|
|
|
|
base_url = 'tstczpw.dtangshan.com'
|
|
protocol = 'https'
|
|
|
|
|
|
default_headers = {
|
|
'accept': 'application/json, text/plain, */*',
|
|
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
|
|
'authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTE5NDA2LCJ1c2VybmFtZSI6IuS5iOW9pua4hSIsInB3ZCI6IjI5YmE3OTA3ZDUxNTE4MGNlNGU5ZmY0Mzk4ZmI5OGNiIiwiaWF0IjoxNzQ4NDgxNDQxLCJleHAiOjE3ODAwMTc0NDF9.EaF6zHc8TE-OsmUW_no3S9g-Ch7Af5xxoB1FtN0cY2U',
|
|
'cache-control': 'no-cache',
|
|
'pragma': 'no-cache',
|
|
'priority': 'u=1, i',
|
|
'referer': 'https://tstczpw.dtangshan.com/uc/enterprise/resume-library?tab=resume',
|
|
'sec-ch-ua': '"Chromium";v="136", "Microsoft Edge";v="136", "Not.A/Brand";v="99"',
|
|
'sec-ch-ua-mobile': '?0',
|
|
'sec-ch-ua-platform': '"Windows"',
|
|
'sec-fetch-dest': 'empty',
|
|
'sec-fetch-mode': 'cors',
|
|
'sec-fetch-site': 'same-origin',
|
|
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 Edg/136.0.0.0',
|
|
'x-platform': '1',
|
|
'x-site-id': 'undefined'
|
|
}
|
|
|
|
default_cookies = {
|
|
'x-trace-id': 'b1ed266a69b84acfb41a789948b17cf2',
|
|
'logged': '1',
|
|
'__csrf': 'd89b15be-c143-47e1-b6b2-f367e03e54f1',
|
|
'Hm_lvt_f4456766547e6691e07b5e2eced1f70d': '1748435541,1748481435',
|
|
'Hm_lpvt_f4456766547e6691e07b5e2eced1f70d': '1748481435',
|
|
'HMACCOUNT': '212FF4B3AD499E5B',
|
|
'token': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTE5NDA2LCJ1c2VybmFtZSI6IuS5iOW9pua4hSIsInB3ZCI6IjI5YmE3OTA3ZDUxNTE4MGNlNGU5ZmY0Mzk4ZmI5OGNiIiwiaWF0IjoxNzQ4NDgxNDQxLCJleHAiOjE3ODAwMTc0NDF9.EaF6zHc8TE-OsmUW_no3S9g-Ch7Af5xxoB1FtN0cY2U',
|
|
}
|
|
|
|
Requests = MR(base_url, protocol)
|
|
Requests.set_default_headers(default_headers)
|
|
Requests.set_default_cookies(default_cookies)
|
|
|
|
pd_data = {
|
|
'resume_id': [],
|
|
'姓名': [], # user_name
|
|
'求职区域': [], # area_show
|
|
'学历': [], # education_level_msg
|
|
'婚姻': [], # marry_status_show
|
|
'年龄': [], # user_age
|
|
'求职状态': [], # work_status_show
|
|
'工作1经历': [],
|
|
'工作2经历': [],
|
|
'工作年限':[],
|
|
'薪资':[],
|
|
}
|
|
|
|
def page_list(page: int = 1) -> str:
|
|
url = '/api/v1/resumes'
|
|
params = {
|
|
'_': str(int(time.time() * 1000)),
|
|
'tab': 'resume',
|
|
'keyword': '财务',
|
|
't':str(int(time.time() * 1000)-200),
|
|
'pageSize': '100',
|
|
'pageIndex': str(page),
|
|
'showStatus': 'true',
|
|
}
|
|
response = Requests.get(url, params=params)
|
|
return response.to_Dict()
|
|
|
|
def info(data):
|
|
infos = data.data.items
|
|
for info in infos:
|
|
pd_data['resume_id'].append(info.id)
|
|
pd_data['姓名'].append(info.name_value)
|
|
pd_data['求职状态'].append(info.job_instant_value)
|
|
pd_data['工作年限'].append(info.work_exp_value)
|
|
pd_data['婚姻'].append(info.marriage_value)
|
|
pd_data['年龄'].append(info.age)
|
|
if (info.job_salary_from == 0 and info.job_salary_to == 0) or (info.job_salary_from is None and info.job_salary_to is None):
|
|
xinzi = "面议"
|
|
else:
|
|
xinzi = f"{info.job_salary_from}~{info.job_salary_to}"
|
|
pd_data['薪资'].append(xinzi)
|
|
pd_data['学历'].append(info.edu_value)
|
|
pd_data['求职区域'].append(info.job_region_value)
|
|
cateforyArr = info.infoCateforyArrObj
|
|
if len(cateforyArr) == 0:
|
|
pd_data['工作1经历'].append('')
|
|
pd_data['工作2经历'].append('')
|
|
elif len(cateforyArr) == 1:
|
|
pd_data['工作1经历'].append(cateforyArr[0].name)
|
|
pd_data['工作2经历'].append('')
|
|
elif len(cateforyArr) >= 2:
|
|
pd_data['工作1经历'].append(cateforyArr[0].name)
|
|
pd_data['工作2经历'].append(cateforyArr[1].name)
|
|
|
|
info(page_list(1))
|
|
|
|
df = pd.DataFrame(pd_data)
|
|
df.to_excel(f'{base_url}_财务.xlsx', index=False)
|