python基于网络爬虫的招聘网数据分析代码
时间: 2023-06-28 10:10:44 浏览: 107
python爬虫爬取某招聘网站2w+的招聘数据并进行数据分析
5星 · 资源好评率100%
以下是一个基于 Python 的网络爬虫招聘网数据分析的代码示例,使用了 requests、BeautifulSoup 和 pandas 库:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
# 获取页面 HTML 内容
def get_page(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)
html = response.content
return html
# 解析页面内容获取数据
def get_data(html):
soup = BeautifulSoup(html, 'html.parser')
job_list = []
for job in soup.find_all('div', class_='job'):
job_name = job.find('a', class_='job-name').text.strip()
company = job.find('div', class_='company-text').text.strip()
location = job.find('div', class_='location-text').text.strip()
salary = job.find('span', class_='salary').text.strip()
job_list.append({'Job Name': job_name, 'Company': company, 'Location': location, 'Salary': salary})
return job_list
# 爬取多个页面的数据
def get_jobs():
jobs = []
for i in range(1, 11):
url = 'https://www.example.com/jobs?page={}'.format(i)
html = get_page(url)
job_list = get_data(html)
jobs += job_list
return jobs
# 将数据转换成 DataFrame 格式
def get_dataframe(jobs):
df = pd.DataFrame(jobs)
return df
# 分析数据
def analyze_data(df):
# 统计职位数量
job_count = df['Job Name'].value_counts()
print(job_count)
# 统计平均工资
df['Salary'] = df['Salary'].apply(lambda x: int(x.replace('K', '000').replace('以上', '').replace('以下', '')))
average_salary = df['Salary'].mean()
print('平均工资:{}K'.format(round(average_salary/1000, 1)))
# 主函数
def main():
jobs = get_jobs()
df = get_dataframe(jobs)
analyze_data(df)
if __name__ == '__main__':
main()
```
在上面的示例中,我们通过 `get_page`、`get_data` 和 `get_jobs` 函数获取了招聘网的多个页面的数据,并将其转换成 DataFrame 格式。随后,我们使用 `analyze_data` 函数对数据进行分析,包括统计职位数量和平均工资。最后,在 `main` 函数中调用以上函数完成整个流程。
阅读全文