近期智联招聘的网站风格变化较快,这对于想爬取数据的人来说有些难受。因此,在前人基础上,我整理了针对智联招聘网站的最新结构进行数据抓取的代码,目前支持抓取职位搜索列表页面的列表项,并将职位列表以exlce表格保存在本地,职位明细页面的职位介绍等内容。下一步将对抓取的数据逐步进行分析处理。
本文用到开发工具为PyCharm,python使用的版本是3.7。引用的模块包含:
import requests
import time
import re
import requests
from bs4 import BeautifulSoup
from src.zhilian_config import *
import xlwt
import xlrd
import os
import matplotlib.pyplot as plt
其中src.zhilian_config为本地配置文件,其他模块均可用pip模块进行安装,或者使用PyCharm工具中的Project Interpreter 进行安装。
下面是程序结构:
注意新建的工程里,需在src目录下建一个result目录,用来存放抓取的数据文件。如下图结果:
程序逻辑步骤如下:
1.首先根据配置文件设置的搜索关键词及城市清单,搜索页码数,进行爬取数据,将抓取到的列表数据逐行写入到txt文件(FILEPATH+FILENAME + ‘.TXT’);
2.同时进入每个职位明细页面提取出职位要求部分的页面内容,经数据清洗后将职位要求部分写入txt文件(FILEPATH+FILENAME + ‘-requirements.TXT’),用于后续进行词频分析;
3.然后读取第一个txt文件,逐行转存到同名的xls文件中;
4.再统计xls文件中的salary列(工资)计算平均工资后统计出工资直方图并保存到result目录下salary_avarage.png
平均工资直方图:
好了,下面直接上程序吧,本次设计了两个python文件,一个配置文件(zhilian_config.py,用于设置查询关键字及城市,查询总页数等配置信息),一个主程序(zhilian.py)。下面看看配置文件:
zhilian_config.py:
# Code based on Python 3.x
# _*_ coding: utf-8 _*_
# __Author: "jordan"
TOTAL_PAGE_NUMBER = 10 # PAGE_NUMBER: total number of pages,可进行修改
KEYWORDS = ['银行', '客户经理'] # 需爬取的关键字可以自己添加或修改
# 爬取主要城市的记录
CITY_SELECT = ['765', '763'] # 选取下面字典表中的某个城市的字典码
CITY_DICT = {'489': '全国',
'530': '北京',
'538': '上海',
'765': '深圳',
'763': '广州'}
# MONGO_URI = 'localhost'
# MONGO_DB = 'zhilian'
FILEPATH = 'result'
FILENAME = '+'.join(CITY_DICT[i] for i in CITY_SELECT) + '地区' + '+'.join(str(i) for i in KEYWORDS) + '岗位统计结果'
# 统计范围,不可编辑
RESULT_HEAD = ['地区', '公司名', '人员数', '公司性质', '学历要求', '职业类型', '岗位描述', '职位类别', '薪资', '福利', '发布时间