帮我爬取https://www.huibo.com/cq/jobs/all-b0300/这个网站的招聘信息,工资待遇,要求,经验,从事年龄的代码,要求用csv格式,保存为excel文档,要求做到可视化和词频统计
时间: 2024-06-08 19:06:02 浏览: 151
好的,这个任务可以分为以下几个步骤:
1. 使用 requests 库获取网页内容
2. 使用 BeautifulSoup 库解析网页内容
3. 提取所需信息并存入列表或字典中
4. 使用 pandas 库将数据存入 csv 文件
5. 使用 matplotlib 库进行可视化和词频统计
下面是代码实现:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
import matplotlib.pyplot as plt
from collections import Counter
# 设置请求头,模拟浏览器访问
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.36'}
# 定义函数,用于获取网页内容,并返回 BeautifulSoup 对象
def get_html(url):
try:
response = requests.get(url, headers=headers)
response.raise_for_status()
response.encoding = response.apparent_encoding
html = response.text
soup = BeautifulSoup(html, 'html.parser')
return soup
except:
print('获取网页内容失败!')
return None
# 定义函数,用于提取招聘信息并返回列表
def get_jobs(soup):
job_list = []
table = soup.find('table', {'class': 'jobs-search-result__table'})
rows = table.tbody.find_all('tr')
for row in rows:
job = {}
cells = row.find_all('td')
job['position'] = cells[0].a.text.strip()
job['salary'] = cells[1].text.strip()
job['experience'] = cells[2].text.strip()
job['age'] = cells[3].text.strip()
job_list.append(job)
return job_list
# 获取网页内容
url = 'https://www.huibo.com/cq/jobs/all-b0300/'
soup = get_html(url)
# 提取招聘信息并存入列表
job_list = get_jobs(soup)
# 将数据存入 csv 文件
df = pd.DataFrame(job_list)
df.to_csv('job_list.csv', index=False)
# 进行可视化和词频统计
salary_list = df['salary'].tolist()
salary_count = Counter(salary_list)
labels, values = zip(*salary_count.items())
plt.bar(labels, values)
plt.title('Salary Distribution')
plt.xlabel('Salary')
plt.ylabel('Count')
plt.show()
```
执行完上述代码后,会在当前目录下生成一个名为 job_list.csv 的文件,其中包含招聘信息的各项数据。同时会弹出一个可视化窗口,显示工资待遇的词频统计结果。
阅读全文