实验四
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)

浙公网安备 33010602011771号