python爬虫:爬取拉勾网职位并分析

数据清洗占数据分析工作量的大头。在拉勾网搜索深圳市的“数据分析”职位,结果得到369个职位。查看职位名称时,发现有4个实习岗位。由于我们研究的是全职岗位,所以先将实习岗位剔除。由于工作经验和工资都是字符串形式的区间,我们先用正则表达式提取数值,输出列表形式。工作经验取均值,工资取区间的四分位数值,比较接近现实。

数据清洗,剔除实习岗位

df.drop(df[df[‘职位名称’].str.contains(‘实习’)].index, inplace=True)

print(df.describe())

由于CSV文件内的数据是字符串形式,先用正则表达式将字符串转化为列表,再取区间的均值

pattern = ‘\d+’

df[‘工作年限’] = df[‘工作经验’].str.findall(pattern)

avg_work_year = []

for i in df[‘工作年限’]:

如果工作经验为’不限’或’应届毕业生’,那么匹配值为空,工作年限为0

if len(i) == 0:

avg_work_year.append(0)

如果匹配值为一个数值,那么返回该数值

elif len(i) == 1:

avg_work_year.append(int(‘’.join(i)))

如果匹配值为一个区间,那么取平均值

else:

num_list = [int(j) for j in i]

avg_year = sum(num_list)/2

avg_work_year.append(avg_year)

df[‘经验’] = avg_work_year

将字符串转化为列表,再取区间的前25%,比较贴近现实

df[‘salary’] = df[‘工资’].str.findall(pattern)

avg_salary = []

for k in df[‘salary’]:

int_list = [int(n) for n in k]

avg_wage = int_list[0]+(int_list[1]-int_list[0])/4

avg_salary.append(avg_wage)

df[‘月工资’] = avg_salary

将清洗后的数据保存,以便检查

df.to_csv(‘draft.csv’, index = False)

4. 词云


我们将职位福利这一列的数据汇总,生成一个字符串,按照词频生成词云实现python可视化。以下是原图和词云的对比图,可见五险一金在职位福利里出现的频率最高,平台、福利、发展空间、弹性工作次之。

在这里插入图片描述

5. 描述统计


在这里插入图片描述

可知,数据分析师的均值在14.6K,中位数在12.5K,算是较有前途的职业。数据分析散布在各个行业,但在高级层面上涉及到数据挖掘和机器学习,在IT业有长足的发展。

我们再来看工资的分布,这对于求职来讲是重要的参考:

  • 10
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你写一个Python爬虫代码,使用requests和BeautifulSoup库来勾网职位信息。以下是代码: ```python import requests from bs4 import BeautifulSoup def get_job_info(url): response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') job_name = soup.select('.job-name')[0].text.strip() salary = soup.select('.job_request .salary')[0].text.strip() experience = soup.select('.job_request p')[1].text.strip() education = soup.select('.job_request p')[2].text.strip() tags = [tag.text.strip() for tag in soup.select('.position-label li')] company = soup.select('.company')[0].text.strip() return {'Job': job_name, 'Salary': salary, 'Experience': experience, 'Education': education, 'Tags': tags, 'Company': company} def get_jobs_list(city, keyword, pages=1): jobs_list = [] for page in range(1, pages+1): url = f'https://www.lagou.com/{city}/zhaopin/{keyword}/{str(page)}/?filterOption=3' response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') job_items = soup.select('.itemcon') for job in job_items: job_url = job.select('.positionlink')[0].get('href') job_info = get_job_info(job_url) jobs_list.append(job_info) return jobs_list jobs = get_jobs_list('beijing', 'python', pages=2) for job in jobs: print(job) ``` 该爬虫代码可以勾网北京地区Python职位的信息。你可以替换city和keyword变量的值来搜索其他城市和职位需求。pages参数是可选的,默认为1,如果设置为2,则前两页的职位信息。 以上是该爬虫代码的实现,如果你有其他问题,可以随时问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值