import requests
import execjs
def get_zp_stoken(job_id):
with open('boss.js', 'r', encoding='utf-8') as f:
js_content = f.read()
ctx = execjs.compile(js_content)
zp_stoken = ctx.call('get_zp_stoken', job_id)
return zp_stoken
def download_job_data(job_id, zp_stoken):
params = {
'jobId': job_id,
'zp_stoken': zp_stoken
}
url = 'https://www.zhipin.com/job_detail/getJobDetail.json?'
response = requests.get(url, params=params)
return response.json()
# 示例使用
job_id = '123456789' # 假设的职位ID
zp_stoken = get_zp_stoken(job_id)
job_data = download_job_data(job_id, zp_stoken)
print(job_data)
这段代码首先定义了一个get_zp_stoken
函数,它加载了boss.js
文件并使用execjs运行其中的JavaScript代码来获取zp_stoken
。然后定义了一个download_job_data
函数,它构造了请求参数并发送请求以下载招聘数据。最后,提供了使用这两个函数的示例代码。在实际应用中,需要替换boss.js
文件的内容以及job_id
的值。