# 数据挖掘 **Repository Path**: lixintao/data_mining_ ## 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 # 1、PRD1.数据加值宣言 ## 1.1、项目名称: 网新三方向【产品经理、前端开发、Python】就业要求分析 - 数据加值宣言:本项目产出按网新三个方向(关键词:产品经理、前端开发、python),共10页,类别数据类别包含:职业名称、经验要求、薪资、工作城市、职位详情页、公司待遇、技能要求……以及及在猎聘网挖掘的全国与这三个关键词相关的工作的数据,以解决网新学子选择方向就业需求及特性的就业分析问题。[网新就业前景](https://www.dxsbb.com/news/2261.html) ## 1.2、PRD2.MVP的数据加值 ### 数据最小可用产品 - 作者成功地具体表述关键词为“产品经理”、“前端开发”、“python”职业的搜索页及详情页的数据解决网新学子在选择就业方向的能力要求、经验价值构成最小可用产品MVP的核心价值:让网新学子可以便捷对比三个方向的就业的门槛,技术要求和经验值钱程度。 - 利益相关者 1. 网络与新媒体各阶段学生 2. 网络与新媒体教师 3. 有网络与新媒体专业的学校 ## 1.3、PRD3.MVP的数据加值 ### 项目简介说明 - 根据猎聘网的推荐系统,在匹配符合要求的职位中,会优先显示优质的职位。所以设置三个关键词,同时也避免了一个关键爬出来页数太多,会出现匹配度不高的职位造成利益相关者观察混乱,出于以人为本为中心,设计爬取出数量刚好,方向热门,匹配度高的职位的科学的合理数据。 - [含参数的猎聘网链接](https://www.liepin.com/zhaopin/?sfrom=click-pc_homepage-centre_searchbox-search_new&d_sfrom=search_fp&key=%E4%BA%A7%E5%93%81%E7%BB%8F%E7%90%86+%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91+python) # 2、挖掘Query参数 - six_parts = urlparse(url) #把url拆成6部分 - out = parse_qs(six_parts.query) #取出query值并输出为字典out - key=["产品经理","前端开发","界面设计"]) #设置三个关键词 - querys = urlencode(a, doseq = True) #对URL进行编码 - 具体代码链接请参考下面链接 - [猎聘搜索页运行代码](https://gitee.com/lixintao/data_mining_/blob/master/ipynb%E4%BB%A3%E7%A0%81/%E7%8C%8E%E8%81%98%E6%90%9C%E7%B4%A2%E9%A1%B5%E8%BF%90%E8%A1%8C%E4%BB%A3%E7%A0%81_liepin_message-checkpoint.ipynb) - [scrapy搜索页后台支持代码](https://gitee.com/lixintao/data_mining_/blob/master/ipynb%E4%BB%A3%E7%A0%81/scrapy%E6%90%9C%E7%B4%A2%E9%A1%B5%E5%90%8E%E5%8F%B0%E6%94%AF%E6%8C%81%E4%BB%A3%E7%A0%81_liepinSpider.py) - [猎聘详情页运行代码](https://gitee.com/lixintao/data_mining_/blob/master/ipynb%E4%BB%A3%E7%A0%81/%E7%8C%8E%E8%81%98%E8%AF%A6%E6%83%85%E9%A1%B5%E8%BF%90%E8%A1%8C%E4%BB%A3%E7%A0%81_liepinspyder-checkpoint.ipynb) - [scrapy详情页后台支持代码](https://gitee.com/lixintao/data_mining_/blob/master/ipynb%E4%BB%A3%E7%A0%81/scrapy%E8%AF%A6%E6%83%85%E9%A1%B5%E5%90%8E%E5%8F%B0%E6%94%AF%E6%8C%81%E4%BB%A3%E7%A0%81_liepin_allmessageSpider.py) # 3、思路方法及具体执行 ### 3.1、执行1.方法选择 使用适当的网页需求方法进行数据采集,发现猎聘网的搜索结果数据不在XHR中,如图所示,即猎聘网的数据是以html为主的静态页面。 - [XHR简介](https://www.w3cschool.cn/ajax/ajax-xmlhttprequest-send.html) ![输入图片说明](https://gitee.com/lixintao/data_mining_/raw/master/images/m1.jpg "在这里输入图片标题") ### 3.2、执行2.单页数据+url解析 提供单页数据挖掘的模式构建,分析url参数,确定关键参数或者后续操作需要用到的参数。 - [xpath基本使用](https://blog.csdn.net/pengjunlee/article/details/89313891?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159514563919724846442260%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=159514563919724846442260&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v3~pc_rank_v2-1-89313891.first_rank_ecpm_v3_pc_rank_v2&utm_term=xpath) - [urlparse解析url的query并构建字典介绍](https://www.cnblogs.com/stemon/p/6602185.html) ![输入图片说明](https://gitee.com/lixintao/data_mining_/raw/master/images/m2.jpg "在这里输入图片标题") ### 3.3、执行3.多页数据 成功地挖掘多页数据,且有系统地整合数据,每一笔数据有新增如下栏位 ![输入图片说明](https://gitee.com/lixintao/data_mining_/raw/master/images/m3.jpg "在这里输入图片标题") ### 3.4、执行4.系统设计思维 作者正确的选择了合适的网页数据抓取的方法(如requests、selenium、scrapy)并阐述选择该方法的原因,有做具体的对比并说明。 - 参考技术文档 1. [Scrapy爬虫框架结构以及和Requests库的比较](https://blog.csdn.net/qq_36949176/article/details/84498734) 2. [scrapy与requests的理解与爬虫优化想法](https://blog.csdn.net/aabccbdde/article/details/83902738?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase) 3. [从requests到selenium](https://blog.csdn.net/qq_43138188/article/details/84026253?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.nonecase) 4. [Scrapy+Selenium---进阶用法+高级](https://blog.csdn.net/Sakura55/article/details/80652445?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase) - 对比,Scrapykang框架是对一个网站的内容进行爬取,爬取效率高,容错率高。而requests的方法比较简单,难度较低,比较适合新手使用,但是爬取效率不算搞,容易网页被识别,然后查封,不是很推荐。selenium的优势是自动化操作,可以模拟浏览器登录和爬取,效率较高,但是效率较低。综上所述,本项目采取scrapy框架进行爬取数据。 ### 3.5、执行5.数据导出 作者能正确的选择数据文件类型,并导出数据文件,该数据文件存储在指定路径。 ![输入图片说明](https://gitee.com/lixintao/data_mining_/raw/master/images/m5.jpg "在这里输入图片标题") - 具体表格请点击下列连个链接 [ 网新三方向就业信息搜索列表页](https://gitee.com/lixintao/data_mining_/blob/master/Excel%E8%A1%A8%E6%95%B0%E6%8D%AE/%E7%BD%91%E6%96%B0%E4%B8%89%E6%96%B9%E5%90%91%E5%B0%B1%E4%B8%9A%E4%BF%A1%E6%81%AF%E6%90%9C%E7%B4%A2%E5%88%97%E8%A1%A8%E9%A1%B5.xlsx) [网新三方向就业职业详情页](https://gitee.com/lixintao/data_mining_/blob/master/Excel%E8%A1%A8%E6%95%B0%E6%8D%AE/%E7%BD%91%E6%96%B0%E4%B8%89%E6%96%B9%E5%90%91%E5%B0%B1%E4%B8%9A%E8%81%8C%E4%B8%9A%E8%AF%A6%E6%83%85%E9%A1%B5.xlsx) ### 3.6、执行6.数据整理 作者成功地挖掘多两类网新方向的搜索结果简述页数据和详情页数据(按query参数设计的三个关键词“产品经理”、“前端框架”、“Pyhton”),且有系统地整合数据(通过pandas模块对爬取到的数据进行分析,过滤不需要的数据,对数据进行系统整合),确保每一笔数据有类别正确地数据量。具体代码及分析过程请点击下面链接。 [数据分析代码及分析过程](https://gitee.com/lixintao/data_mining_/blob/master/ipynb%E4%BB%A3%E7%A0%81/%E6%95%B0%E6%8D%AE%E6%B8%85%E6%B4%97_pandas%E5%88%86%E6%9E%90-checkpoint-checkpoint%20(2).ipynb) [技能要求词云图](https://gitee.com/lixintao/data_mining_/blob/master/HTML%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%9B%BE/%E7%BD%91%E6%96%B0%E4%B8%89%E6%96%B9%E5%90%91%E5%B0%B1%E4%B8%9A%E8%A6%81%E6%B1%82%E8%AF%8D%E4%BA%91%E5%9B%BE.html) ### 3.7思路方法及具体执行简述 1. 通过在猎聘网搜索栏输入“产品经理”、“前端开发”、“python”三个关键词并通过空格进行关键词区分。点击搜索,复制搜索后页面的URL,此时的URL是包含三个关键词参数的。 2. 粘贴URL到scrapy框架中,先初步爬取10页的搜索页结果,导出成Excel表格. 3. 在Excel表中初步处理不符合要求的结果(非互联网公司、其他类型的产品经理……). 4. 通过scrapy框架代码读取处理后的Excel表,再次爬取列中所有公司的详情页。 5. 数据分析,为了让同学们更直观地看到各类能力需求的对比,通过LDA主题建模处理爬取后不多不少的数据,得出多项能力需求的比较,并产出html文件。为避免LDA主题建模的html文件在部分浏览器无法显示,在此放上截图。[LDA主题建模意义](https://blog.csdn.net/fengser/article/details/50682528?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159515595519195264554628%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=159515595519195264554628&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v3~pc_rank_v2-3-50682528.first_rank_ecpm_v3_pc_rank_v2&utm_term=LDA%E4%B8%BB%E9%A2%98%E5%BB%BA%E6%A8%A1%E6%84%8F%E4%B9%89) ![输入图片说明](https://gitee.com/lixintao/data_mining_/raw/master/images/lda.png "在这里输入图片标题") # 4、心得总结及感谢 ### 4.1、心得总结 1. 数据挖掘的第一阶段是挖到越多数据越好,再进阶一点就是挖到不多不少的合适的数据。使用框架尽心挖取数据是一种便捷和科学的方法。挖到数据还有很关键的一点就是数据分析,分析得越好越能体现挖掘数据的价值。相对于挖掘到数据量,挖掘的思想是更加重要的。[参考文档_python数据挖掘介绍](https://blog.csdn.net/ITxiaoangzai/article/details/102691106?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159515548719195239853237%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=159515548719195239853237&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v3~pc_rank_v2-4-102691106.first_rank_ecpm_v3_pc_rank_v2&utm_term=python%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98%E7%9A%84%E6%84%8F%E4%B9%89) 2. 使用scrapy框架爬取的数据,会比用request方法爬取的数据要多,速度更快,更不容易被反爬。 3. 在爬取数据前,要先明确好自己的价值主张,确认数据是以人为本的,才不会偏离主旨。 4. 要培养自己的数据感,数据爬取前先分析好,预计会有多少数据量,数据类别有哪些,如果才能更加高效地爬取。 5. 最后,即使爬取完了数据,也要关心该如何处理得到的数据,数据清洗、协同过滤利用pandas模块进行分析也会是一个不错方法。 - [pandas模块简单入门](https://blog.csdn.net/sinat_23338865/article/details/80470881?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.nonecase) ### 4.2、感谢 1. 感谢猎聘设置了比较低的反爬机制,让我轻松爬取到了足够的数据。 2. 感谢scrapy的发明者,提供了一个简单轻便的数据爬取框架。 3. 感谢老师和我身边的同学,教会我用代码爬取数据,使用pandas数据分析以及LDA主题建模。