注:后续博客地址:https://blog.youkuaiyun.com/ITwangxiaoxu/article/details/107220339
项目要求
利用python编写爬虫程序,从招聘网上爬取数据,将数据存入到MongoDB中,将存入的数据作一定的数据清洗后分析数据,最后做数据可视化。
工具软件
python 3.7
pycharm 2020.1.2
具体知识点
python基础知识
scrapy框架知识点
pyecharts 1.5
MongoDB
爬取字段
职位名称、薪资水平、招聘单位、工作地点、工作经验、学历要求、工作内容(岗位职责)、任职要求(技能要求)
数据存储
将爬取到的数据保存在MongoDB中
数据分析与可视化
具体要求
(1) 分析“数据分析”、“大数据开发工程师”、“数据采集”等岗位的平均工资、最高工资、最低工资,并作条形图将结果展示出来。
(2)分析“数据分析”、“大数据开发工程师”、“数据采集”等大数据相关岗位在成都、北京、上海、广州、深圳的岗位数,并做条形图将结果展示出来。
(3)分析大数据相关岗位1-3年工作经验的薪资水平(平均工资、最高工资、最低工资),并做出条形图展示出来;
(4)将数据采集岗位要求的技能做出词云图
具体步骤
1.分析网页
点击进入网页:https://search.51job.com/list/000000,000000,7500,00,9,99,%2520,2,1.html?lang=c&stype=&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99&companysize=99&providesalary=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&welfare=
我们先来看看网页构造。再来分析思路:
由于我们需要的数据岗位的分布数据,所以我们就直接搜索条件,分析数据岗位在全国的一个分布情况。
由于我需要爬取的字段在招聘列表上面不完整,就需要进入详情里面去分析我们的字段。先来看看进去后是什么样子。
我们需要的字段都在这里面了,所以,就可以开始研究网页结构布局
首先我需要抓取全部列表信息岗位的网址,并要进入到每一个网址去,那么就必然需要每一个进去的入口,而这个入口就是这个这个职位名称所包含的网址:
新建一个爬虫项目:
scrapy startproject qiancheng
然后打开我们的项目,进入瞅瞅会发现啥都没有,我们再cd到我们的项目里面去开始一个爬虫项目
cd qiancheng
scrapy genspider qc https://search.51job.com/
这后边的网址就是你要爬取的网址。
先设置一下我们的配置文件settings.py中写上我们的配置信息:
关闭网页机器人协议
ROBOTSTXT_OBEY = False
请求头信息
DEFAULT_REQUEST_HEADERS = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'en',
'User_Agent' :'Mozilla/5.0 (Windows NT