实现58同城招聘网站上2024年3月份长沙保姆的招聘信息进行爬虫,求出保姆该月的需求量和平均薪水 Python代码
时间: 2024-10-12 14:08:48 浏览: 24
首先,我们需要明确的是,由于58同城的网页结构可能会发生变化,直接通过Python爬虫获取特定时间点的招聘信息并计算需求量和平均薪水可能会遇到挑战。此外,网站通常会有反爬虫机制和数据保护政策。为了尊重网站规定,并模拟用户行为,我们可以使用Scrapy这样的框架来编写Python爬虫,配合Selenium模拟浏览器行为,同时使用BeautifulSoup处理HTML。
以下是一个简化的示例,假设我们能获取到包含所有保姆信息的数据:
```python
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
# 设置ChromeDriver路径
driver = webdriver.Chrome()
def scrape_58_tongcheng(month='03', year='2024'):
url = f"https://search.58.com/house/nanny/d{year}{month}/?sor=pubtime"
driver.get(url)
# 等待页面加载完成
time.sleep(5) # 调整实际需要的时间,取决于网站动态加载策略
soup = BeautifulSoup(driver.page_source, 'html.parser')
# 搜索保姆信息
nanny_listings = soup.find_all('div', class_='job-item') # 根据实际DOM结构调整
total_demand = len(nanny_listings)
salaries = [] # 初始化薪水列表
for listing in nanny_listings:
salary_info = listing.find('span', class_='salary') # 查找薪水部分
if salary_info:
salaries.append(int(salary_info.text.replace('元', ''))) # 提取数字并转换
avg_salary = sum(salaries) / total_demand if total_demand else None # 计算平均薪资
return total_demand, avg_salary
# 获取3月份需求量和平均薪水
demand, average_salary = scrape_58_tongcheng('03', '2024')
print(f"3月份长沙保姆需求量:{demand}")
print(f"3月份长沙保姆平均薪资:{average_salary}元")
# 关闭驱动
driver.quit()
阅读全文