# 猎聘-产品经理行业数据挖掘 **Repository Path**: kg2000/data_mining_final_project ## Basic Information - **Project Name**: 猎聘-产品经理行业数据挖掘 - **Description**: 数据挖掘期末项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-07-17 - **Last Updated**: 2025-05-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 猎聘-产品经理行业数据挖掘 运用request库爬取猎聘网站,挖掘出猎聘60页2400条行业数据,以excel表格存档 # 数据最小可用产品 为解决新媒体专业毕业就业产品经理职位选择问题,挖掘猎聘网的产品经理职位的所在城市、行业和热门公司,通过这些数据辅助学生了解不同地域对、不同行业、不同公司对就职者能力要求。并且挖掘了对经验的要求,可以解决毕业生零经验但不知道哪些企业招收无经验者的问题。 # 数据加值: - 可以利用pandas对数据进行可视化,指导毕业学生根据行业来选择产品经理职位 - 制作零经验的产品经理职位查询器 # 文档 - [ipynb文件](https://gitee.com/kg2000/data_mining_final_project/blob/master/mining/%E6%9C%9F%E6%9C%AB%E9%A1%B9%E7%9B%AE/%E4%BA%A7%E5%93%81%E7%BB%8F%E7%90%86%E8%A1%8C%E4%B8%9A%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98.ipynb) - [excel](https://gitee.com/kg2000/data_mining_final_project/tree/master/mining/%E6%9C%9F%E6%9C%AB%E9%A1%B9%E7%9B%AE/data) # 参数 - query 51个query ![query](https://gitee.com/kg2000/data_mining_final_project/raw/master/mining/%E6%9C%9F%E6%9C%AB%E9%A1%B9%E7%9B%AE/image/query.png) - 关键词:产品经理 ``` # 建构参数模板生成器:keyword curPage def 参数模板生成(keyword, curPage): 参数 = 参数模板.copy() 参数['curPage'] = curPage 参数['keyword'] = keyword return (参数) 参数_keyword_产品经理_curPage = { i:参数模板生成(curPage = [i], \ keyword = ['产品经理']) \ for i,v in href_字典.items()\ } # print(参数_keyword_产品经理_curPage) # 只生成本页有的额外翻页URL, 并没有推估到&curPage=9,也没有这页 print (df_qs.curPage_int.min()) # 最小值只有1 print (df_qs.curPage_int.max()) # 最大值只有9 # 应该是 0 (本页)....9(最大值) 参数_keyword_产品经理_curPage = { i:参数模板生成(curPage = [i], \ keyword = ['产品经理']) \ for i in range(0,df_qs.curPage_int.max()+1)\ } 参数_keyword_产品经理_curPage ``` # 思路方法及具体执行 - 猎聘网中,挖掘的城市、行业、公司、经验、url等等数据在XHR中。selenium和scrapy和requests均能抓取数据,scrapy库适用于爬取大量数据。使用requests原因在于爬取猎聘的数据量较少、结构单一,不需要使用其他两种。 - ![image](https://gitee.com/kg2000/data_mining_final_project/raw/master/mining/%E6%9C%9F%E6%9C%AB%E9%A1%B9%E7%9B%AE/image/d4416f5b3f450eeae4d9201b637f3fd.png) - 单页 ``` # 使用 urllib.parse 解析 from urllib.parse import urlparse, parse_qs [ urlparse(x) for x in 行业数据选择器链结.values()] ``` - 多页翻页url ``` xpath_翻页a = '//div[@class="pagerbar"]/a' # 有disabled, current等href是javascript xpath_翻页a = '//div[@class="pagerbar"]/a[starts-with(@href,"/zhaopin")]' print (r.html.xpath(xpath_翻页a)) # 物件 href_列表 = [x.xpath('//@href')[0] for x in r.html.xpath(xpath_翻页a)] #print (href_列表) 文字_列表 = [x.text for x in r.html.xpath(xpath_翻页a)] #print (文字_列表) href_字典 = {x.text:x.xpath('//@href')[0] for x in r.html.xpath(xpath_翻页a)} print (href_字典) ``` - 指定下载到data目录 ``` df_all.to_excel("产品经理_liepin_行业.xlsx", sheet_name="搜查结果") ``` - 数据整理 所有数据都归于data文件下,并且将行业数据、经验、年龄要求与职位名称一一归类于同一文件下。城市行业数据也归类于同一文件下。 # 心得总结及感谢 经过一个学期的学习,我们了解到如何使用xpath、seleuim、scrapy等进行数据爬取。感谢廖老师和许老师的辛苦付出,也感谢同学们互相帮助。最后感谢所有开源知识的大众。没有他们开源,我们就很难学习到新的技术。参考了[CSDN博客文章](https://blog.csdn.net/Coding___Man/article/details/85236265)\ - [requests和scrapy对比](https://blog.csdn.net/daiyu__zz/article/details/81783418) - [requests_html教程](https://www.cnblogs.com/cxiaocai/p/10952570.html) - [xpath](https://www.tutorialspoint.com/xpath/xpath_quick_guide.htm) - [pandas文档](https://pandas.pydata.org/pandas-docs/stable/getting_started/index.html#getting-started) - [request_html文档](https://requests-html.kennethreitz.org/) - [常见数据挖掘代码](https://blog.csdn.net/zy_blanche/article/details/70312773?utm_source=blogxgwz5) - [CSDN博客文章](https://blog.csdn.net/Coding___Man/article/details/85236265)