用python获取boss招聘网上的招聘信息,并进行可视化数据分析处理
时间: 2024-05-10 09:20:51 浏览: 100
基于Python网上招聘信息的爬取和分析
作为AI语言模型,我可以为您提供思路和代码示例。下面是一个简单的示例,用于获取BOSS招聘网上的招聘信息:
```python
import requests
from bs4 import BeautifulSoup
# 获取页面html内容
url = "https://www.zhipin.com/job_detail/?query=python&scity=101280100&source=2"
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)
html = response.text
# 解析html内容
soup = BeautifulSoup(html, 'html.parser')
job_list = soup.find_all('div', {'class': 'job-primary'})
# 输出每个职位的信息
for job in job_list:
job_name = job.find('div', {'class': 'job-title'}).text
company_name = job.find('div', {'class': 'company-text'}).a.text
salary = job.find('span', {'class': 'red'}).text
print(job_name, company_name, salary)
```
这里用到了requests库和BeautifulSoup库,requests库用于获取html页面内容,BeautifulSoup库用于解析html内容。代码中的url是BOSS招聘网的一个搜索结果页面,可以根据需要修改搜索关键词和城市代码。
对于可视化数据分析处理,可以使用Python的数据分析库,比如pandas、matplotlib、seaborn等。这里以pandas和matplotlib为例,展示如何对数据进行可视化分析:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 获取职位信息并存储到DataFrame中
job_data = []
for job in job_list:
job_name = job.find('div', {'class': 'job-title'}).text
company_name = job.find('div', {'class': 'company-text'}).a.text
salary = job.find('span', {'class': 'red'}).text
job_data.append([job_name, company_name, salary])
df = pd.DataFrame(job_data, columns=['职位名称', '公司名称', '薪资'])
# 薪资数据清洗和转换
df['薪资'] = df['薪资'].apply(lambda x: x.strip('k'))
df['薪资'] = df['薪资'].apply(lambda x: int(x.split('-')[0])*1000 if '-' in x else int(x)*1000)
# 统计薪资分布并画图
salary_counts = pd.cut(df['薪资'], bins=[0, 10000, 20000, 30000, 40000, 50000, 60000, 70000, 80000, 90000, 100000])
salary_counts = salary_counts.value_counts().sort_index()
salary_counts.plot(kind='bar', rot=0)
plt.show()
```
代码中用到的pandas库用于数据处理和统计,matplotlib库用于画图。首先将职位信息存储到DataFrame中,然后对薪资数据进行清洗和转换。最后使用cut函数将薪资数据分成10个区间,并统计每个区间的数量,最后用条形图展示薪资分布情况。
阅读全文