用pycham pyhon 爬取boss直聘多页招聘信息并可视化出条形图,折线图,饼图,箱型图的代码
时间: 2025-02-23 20:35:25 浏览: 70
在Python中,我们可以使用BeautifulSoup库来抓取HTML内容,然后Pandas处理数据,Matplotlib或Seaborn库用于绘制图表。这里是一个简单的示例,假设你想要爬取Boss直聘的招聘信息,并以条形图、折线图、饼图和箱型图的形式展示某些关键信息。请注意,实际的网络请求需要处理反爬虫策略,这里仅提供一个基本框架:
首先,安装必要的库(如果尚未安装):
```bash
pip install requests beautifulsoup4 pandas matplotlib seaborn
```
然后,编写一个函数用于获取页面内容:
```python
import requests
from bs4 import BeautifulSoup
def get_html(url):
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)
if response.status_code == 200:
return response.text
else:
print(f"Failed to fetch data from {url}")
# 获取每一页的数据
def parse_page(html):
# 这里你需要解析HTML结构找到所需数据,比如职位薪资、经验等字段
soup = BeautifulSoup(html, 'html.parser')
job_data = [] # 存放招聘信息的数据
# 根据网页结构填充job_data
# ...
return job_data
# 通过索引遍历多页
def fetch_and_process_pages(base_url, num_pages):
all_data = []
for i in range(1, num_pages+1):
url = f"{base_url}?pn={i}" # 假设每页URL包含分页参数pn
html = get_html(url)
page_data = parse_page(html)
all_data.extend(page_data)
return all_data
# 使用数据并绘制图表
def visualize_data(data):
df = pd.DataFrame(data)
# 示例代码:条形图、折线图、饼图和箱型图
# 条形图(薪水分布)
salary_distribution = df['salary'].value_counts().sort_index()
salary_distribution.plot(kind='bar')
# 折线图(按时间发布的趋势)
df['publish_date'] = pd.to_datetime(df['publish_date']) # 假设有一个发布日期字段
df.groupby(df['publish_date'].dt.date)['total_views'].plot(kind='line')
# 饼图(各行业占比)
industry_distribution = df['industry'].value_counts(normalize=True)
pie_chart = industry_distribution.plot(kind='pie', autopct='%1.1f%%')
# 箱型图(薪资范围)
df.boxplot(column='salary')
# 主函数
if __name__ == "__main__":
base_url = "https://www.zhipin.com/jobs/"
num_pages = 10 # 假设有10页数据
all_data = fetch_and_process_pages(base_url, num_pages)
visualize_data(all_data)
# 更改图表显示
plt.show()
阅读全文
相关推荐















