# 数据挖掘期末项目 **Repository Path**: QiuYuAn0303/data_mining_final_project ## Basic Information - **Project Name**: 数据挖掘期末项目 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-07-17 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数据挖掘期末项目 ## 项目名称:产品经理招聘数据分析 #### 项目背景 又是一年毕业季,无数学子即将离开学校,踏入社会。”毕业就失业“,这是许多学生的调侃,但也从侧面上表现了他们对于寻找工作的焦虑。而对于中大南方网新学子来说,学校里接触最多,毕业后最优先考虑的方向应该就是互联网方向的产品经理职位。 ``` (数据加值宣言:本项目产出按XXX及XXX挖掘的关于YYY(例子: NPS)工作的数据,以解决NPS就业需求及特性的就业分析问题) 注. 需达成评价表格PRD1.考核内容:"作者成功地把数据产品对加值(总结解决什么问题)的精确丶专业及中肯地总结表述于第一段" ``` 本项目产出自按“产品经理”为关键词,挖掘关于前程无忧51job中广州地区互联网/电商行业的产品经理相关招聘信息(岗位名称、公司名称、工作地点等),通过这些数据应届生或毕业生可以更好的了解到产品经理的工资情况以及职位要求,从而更好的找到自己心怡的工作。 - 关键词:产品经理+互联网/电商 ![关键词](https://gitee.com/QiuYuAn0303/data_mining_final_project/raw/master/image/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98.png) - 页面:1-40页(所有) - 数据类别:岗位名称、公司名称、工作地点、工资、发布日期、具体页面url、经验+学历要求、职位信息 - 爬取岗位:产品经理(互联网相关) ## 数据最小可用产品 ``` (MVP的数据加值):需达成评价表格PRD2.考核内容:"作者成功地具体表述数据产品的数据类型及内容如何构成最小可用产品MVP的核心价值(具体什么数据解决什么问题) ``` - 本项目通过整合51job上的互联网/电子商务行业的产品经理的岗位名称,工资,学历要求,职位信息等数据,得到“广州市”的产品经理职业的信息,让毕业生能够了解各个公司对于产品经理的要求,还可以让毕业生们对比各个公司的工资情况。这样毕业生可以更有目的性的去寻找自己心怡的工作。 ## Query参数 - keyword:产品经理 - url:搜索关键词“产品经理”并限制行业为“互联网/电商”生成的url - job_name:岗位名称 - company_name:公司名称 - job_address:工作地点 - salary:工资 - release_time:发布时间 - page_url:具体页面url - edu_need:经验+学历 - work_describe:职位信息 ## 思路方法及具体执行 1.先确定自己将要爬取的网站以及想要爬取的内容。 2.找到该网站URL的变换规律方便爬取下一页(可使用代码拆分,51job的规律比较简单,我这边就没使用代码了) ``` https://search.51job.com/list/030200,000000,0000,32,9,99,%25E4%25BA%25A7%25E5%2593%2581%25E7%25BB%258F%25E7%2590%2586,2,1.html? https://search.51job.com/list/030200,000000,0000,32,9,99,%25E4%25BA%25A7%25E5%2593%2581%25E7%25BB%258F%25E7%2590%2586,2,2.html? https://search.51job.com/list/030200,000000,0000,32,9,99,%25E4%25BA%25A7%25E5%2593%2581%25E7%25BB%258F%25E7%2590%2586,2,3.html? ``` - 三个链接只有.html?前的数字发生了变化。 3.找到自己想要爬取的内容的xpath。 4.使用request模板进行数据爬取。 5.先爬取搜索页面中的岗位名称、公司名称、工作地点、工资、发布时间以及进入工作具体页面的url. ![xpath](https://gitee.com/QiuYuAn0303/data_mining_final_project/raw/master/image/xpath-1.png) 6.进入工作招聘具体页面。 ![xpath](https://gitee.com/QiuYuAn0303/data_mining_final_project/raw/master/image/%E8%AF%A6%E6%83%85%E9%A1%B5.png) 7.在具体页面找到经验+学历以及岗位描述信息的xpath并进行爬取。 ![page](https://gitee.com/QiuYuAn0303/data_mining_final_project/raw/master/image/xpath-2.png) 8.将爬取到的页面信息写入csv文件中。 9.搜索页内容全部爬取完之后继续爬取下一页。 具体操作代码:[ipynb文档](https://gitee.com/QiuYuAn0303/data_mining_final_project/blob/master/181013029%20%E9%82%B1%E7%91%9C%E5%AE%89%2051job%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98.ipynb) ## 心得总结及感谢 - 在尝试爬取了几个招聘网站后,最终还是选择了51job前程无忧网作为我的爬取对象,相比于猎聘、BOSS直聘,51job的反爬虫机制相对较少,这给了我这种爬虫新手很大的发挥空间(BOSS直聘需要使用cookie且cookie变化非常频繁,而猎聘只能够爬取10页的数据)。 - 在爬取代码中最困难得就是进入到工作具体页面爬取信息,不过幸好有各位大佬关于爬取51job的代码教学,我才能克服这个困难。 - 感谢各个老师一学期的辛勤教导,也感谢我的舍友能够在我遇到困难的时候与我一起讨论,我还要感谢各个技术类专栏的大佬们,没有他们提供怎么解决常见爬虫错误的方法,我将难以完成这个项目。 - 代码参考:[Python爬取招聘网站数据,给学习、求职一点参考](https://www.bilibili.com/read/cv6767212/)