通过爬取前程无忧网站数据分析上海互联网行业招聘状况
1、项目要求
内容完整程度、可用性(可操作、易操作、美观)、时间先后、先进性等。
2、项目内容
爬取前程无忧网站(网址:https://www.51job.com/)上的工作招聘信息(截止2018年11月5日),分析工作需求量、工作地点等数据。
工作招聘种类众多,为简化数据量,我在这里选取的是上海地区的互联网/电子商务行业的工作招聘,以此来分析上海地区的互联网行业招聘状况。
3、项目准备
(1)Python库的安装:
在该项目中,我使用到了如下python库:
Requsts库和BeautifulSoup库都是比较常见的Python库,而xlwt库是支持对Excel文件格式为xls文件的写入的库。安装 比较方便,不再赘述。
(2)了解HTML:
为爬取前程无忧网站的数据,我们要先观察一下它的HTML,以下是代码截图:
将右边放大:
我们可以观察到每一行招聘信息都在其各自的<div class=”el mk”>中,在每一个<div class=”el mk”>中,“职位名称”位于<p class=”t1 tg1”>,在<span>的子标签<a>中,作为title属性,同样的,“公司名称”位于<span class=”t2”>中,工作地点在<span class=”t3”>中,“薪资”在<span class=”t4”>,而t5是这条招聘信息的上传时间,不属于我们爬取数据的范围。
4、构建爬虫
总的来说,爬虫的代码并不难写。
我设计了四个函数,如下:
(1)get_one_page(url)函数:
该函数是将用BeautifulSoul解析传进来的url,并返回一个soup。
(2)get_info(soup)函数:
该函数是获取一页的数据。由网站截图可知,其信息展示是翻页式的,所以每一获取一页的内容。
这里分别定义了职位、公司、工作地点和薪资的列表,用来存储爬取到的数据。
(3)write_to_excel()函数:
该函数是将四个存储数据的列表写入excel表格。
(4)main()函数:
主函数,根据参数决定爬取多少页内容,将爬取的内容全都存储在列表中,最后再写入excel表格中。
这里刚开始我没找到网站的规律,因为太长了(所以截图也截不全),后来突然发现其中某一个数字代表第几页,就可以直接将该数字替换为循环变量i。
5、执行爬虫,爬取数据
本次爬取数据爬取了20页,共1004条数据。数据截图如下:
6、分析数据
对工作地点进行词频整理,代码如下:
我取了前十五名,结果如下:
绘制柱状图,因为一张柱状图最多显示十个数据,所以我们选择前十名进行绘制:
同样的,我们可以分析职位数量,大概重复了六七次,终于把一些无关紧要的词剔除了,剩下了一些还算是比较明确的职位词语。(左边为代码,右边为输出结果):
数量排在前10名的职位饼图:
数量排在前20名的职位(在输出结果中筛选了一下更符合“职业”的关键词)饼图:
由此可见,上海地区的Java语言在岗位需求占有巨大的比例,发展前景相当可观。
【Ps:因为我做实验比较慢哦,所以更新也比较慢,请见谅~ 笔芯!(´▽`ʃ♡ƪ)】