嗯,标题党了。此文所讲的找工作,不是一般通过浏览招聘网站找工作。此文所讲的找工作,是通过爬虫以及数据分析,自动精确匹配工作机会。如果还是传统的浏览招聘网页,确实有点不够优雅。如果你观望工作,可以做成推送,这样就不会与你理想的工作失之交臂,而且悄无声息。
本文以拉勾网为例,爬取一线城市软件测试工作机会的数据。
通过 chrome 浏览器工具,我们可以发现,拉勾网页的数据,可以通过 json 获取到。
发个请求就可以获取,都不需要用爬虫框架。
import requests
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
url = 'http://www.lagou.com/jobs/positionAjax.json?city={}&yx={}&needAddtionalResult=false'
cities = ['北京', '上海', '广州', '深圳']
salaries = ['2k-5k', '5k-10k', '10k-15k', '15k-25k', '25k-50k']
def get_page(url, page_num, keyword):
if page_num == 1:
boo = 'true'
else:
boo = 'false'
page_data = {
'first': boo,
'pn': page_num,
'kd': keyword
}
page = requests.post(url,page_data)
return page.json()
执行起来就是这样的:
于是得到了一现城市软件测试岗分布的 Dataframe.
统计行,用图例展现出来,就得到了总数分布图,如下:
从图中可以看出:
帝都机会最多,遥遥领先。
广州最弱,差不多是深圳的一半。
上海深圳相差不大。
把这个 Dataframe 用图表展现出来,就得到了薪水分布图。
此图可以看出:
帝都对中高端测试人员需求较多,分布均匀。
其他城市对 5-10K 的人员需求较多,薪水越越往上,职位数量呈剧烈直线下降趋势。
由此可以看出,就软件测试行业来看:帝都工作岗位,无论是数量上,还是质量上,都完胜其它城市。
我们都希望自己的工作,钱多,事少,离家近。
事情多少不太好说。但是其他两项,可以统计分析。
我们对上海,15-25K 这个区间段为例进行具体分析:
取一些自己感兴趣的 tag 来爬取数据。
number = count_frame.loc[cities[1], salaries[3]]
page_number = int(number / 15)
tags = ['companyFullName', 'companyLabelList', 'companySize', 'district', 'financeStage', 'industryField',
'positionAdvantage', 'positionLables', 'positionName', 'workYear']
for page_index in range(1, page_number):
page = get_page(url.format(cities[1], salaries[3]), page_index, keyword)
page_result = page['content']['positionResult']['result']
jobs = (page_result[index][tag] for index in range(0, 15) for tag in tags)
job_list = list(jobs)
爬出来的数据,保存到 excel 中,得到一个如下的图表。
首先对公司福利进行统计,为了直观,做了个图。
多数公司强调提供发展平台,空间。
也用弹性,氛围来吸引人才。
读取这个 excel, 通过 dataframe 来 filter 关键字,就能精确匹配到你期望的工作。
当然,打铁还需自身硬。 期望的工作定位到了,你还得有匹配工作的实力。
加上定时功能,每天就可以定时给你推送了。
注意,现在的网站反爬能力也越来越强。可能一不小心就会是这样。
具体如何应对,下回再说。
此方法可以适用其它工作岗位。
最后套用葛大爷的一句话:“我们吃着火锅,唱着歌。” 就把工作给定位到了,美哉妙哉。