帮我做一个基于python的农业岗位招聘分析系统
时间: 2023-12-05 09:04:32 浏览: 33
好的,以下是一个基于Python的农业岗位招聘分析系统的实现:
1. 数据获取
首先,需要从招聘网站(如智联招聘、51job等)中获取农业行业相关的招聘信息。这里以智联招聘为例,使用Python的requests和BeautifulSoup库进行网页爬取和解析:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://sou.zhaopin.com/?p=1&jl=530&kw=%E5%86%9C%E4%B8%9A%E7%BB%8F%E7%90%86&kt=3'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
```
其中,url参数中的“jl=530”表示搜索地点为江苏省,"kw=农业经理"表示搜索关键词为农业经理;headers参数中模拟浏览器访问。
2. 数据清洗
接下来,需要对爬取的数据进行清洗和整理,提取有用的信息(如公司名称、职位名称、薪水、工作经验要求等),并把它们保存到一个数据表格中,以便后续分析。这里使用pandas库来处理数据:
```python
import pandas as pd
data = []
for i in soup.select('.contentpile__content__wrapper__item__info'):
try:
company = i.select('.contentpile__content__wrapper__item__info__box__cname__title')[0].text.strip()
job = i.select('.contentpile__content__wrapper__item__info__box__jobname__title')[0].text.strip()
salary = i.select('.contentpile__content__wrapper__item__info__box__job__saray')[0].text.strip()
exp = i.select('.contentpile__content__wrapper__item__info__box__job__demand')[0].text.strip()
data.append((company, job, salary, exp))
except:
pass
df = pd.DataFrame(data, columns=['Company', 'Job', 'Salary', 'Experience'])
```
3. 数据分析
最后,可以通过对数据进行分析来了解当前农业行业的就业状况,以及不同职位的薪资水平和经验要求等。这里使用matplotlib库来绘制图表:
```python
import matplotlib.pyplot as plt
# 统计招聘信息数量
counts = df['Job'].value_counts().head(10)
plt.bar(counts.index, counts.values)
plt.title('Top 10 Jobs in Agriculture')
plt.xlabel('Job Title')
plt.ylabel('Count')
plt.xticks(rotation=45)
plt.show()
# 统计薪资水平
df['Salary_min'] = df['Salary'].apply(lambda x: x.split('-')[0])
df['Salary_max'] = df['Salary'].apply(lambda x: x.split('-')[1])
df['Salary_avg'] = (df['Salary_min'].astype(int) + df['Salary_max'].astype(int)) / 2
job_salary = df.groupby('Job')['Salary_avg'].mean().sort_values(ascending=False).head(10)
plt.bar(job_salary.index, job_salary.values)
plt.title('Top 10 Jobs with Highest Salary in Agriculture')
plt.xlabel('Job Title')
plt.ylabel('Average Salary')
plt.xticks(rotation=45)
plt.show()
# 统计经验要求
exp_counts = df['Experience'].value_counts()
plt.pie(exp_counts.values, labels=exp_counts.index, autopct='%1.1f%%')
plt.title('Experience Requirement in Agriculture Jobs')
plt.show()
```
以上代码可以分别绘制出:
- 农业行业招聘信息数量前10名职位的柱状图
- 农业行业薪资水平最高的10个职位的柱状图
- 农业行业不同经验要求的职位数量占比的饼图
综合上述分析结果,可以为求职者和企业提供参考,帮助他们更好地了解当前农业行业的就业市场和竞争情况。