实验四

import requests
import pandas as pd

def fetch_all_jobs():
jobs = []
page = 1
while True:
url = "https://www.nowcoder.com/job/school/campus/search"
headers = {
"User-Agent": "Mozilla/5.0",
"Content-Type": "application/json",
"Referer": "https://www.nowcoder.com/jobs/recommend/campus"
}
payload = {
"careerJobId": 0,
"cityId": 0,
"recruitType": 0,
"jobType": 0,
"page": page,
"pageSize": 20
}
resp = requests.post(url, headers=headers, json=payload)
try:
data = resp.json()
except Exception as e:
print(f"第 {page} 页解析失败,返回内容:\n{resp.text}")
break

    page_data = data.get("data", {}).get("datas", [])
    if not page_data:
        break

    for item in page_data:
        job_id = item.get("id")
        jobs.append({
            "岗位ID": job_id,
            "岗位名称": item.get("name"),
            "公司名称": item.get("companyName"),
            "岗位要求": item.get("requirement"),
            "详情链接": f"https://www.nowcoder.com/job/detail/{job_id}"
        })

    print(f"已获取第 {page} 页,共 {len(jobs)} 条岗位")
    if page >= data["data"]["totalPage"]:
        break
    page += 1
return jobs

def save_to_excel(jobs, path="D:/nowcoder_jobs.xlsx"):
df = pd.DataFrame(jobs)
df.to_excel(path, index=False)
print(f"✅ 保存成功:{path}")

if name == "main":
all_jobs = fetch_all_jobs()
save_to_excel(all_jobs)

posted @ 2025-04-29 13:38  weido98  阅读(7)  评论(0)    收藏  举报