程序主要采用Python 爬虫+flask框架+html+javascript实现岗位推荐分析可视化系统,实现工作岗位的实时发现,推荐检索,快速更新以及工作类型的区域分布效果,关键词占比分析等。

程序模块实现

工作范围分布

岗位区域分布

岗位技术情况

岗位招聘统计

招聘关键词分析

源码地址

Python爬虫设计

本次毕设系统在Python爬虫模块设计中,主要采用51Job作为数据收集来源,利用Python Request模块实现对站点岗位数据的收集与去重,动态过滤种子URL地址,写入Mysql数据库,完成工作岗位数据的采集与分析。

爬虫程序实现

部分核心代码


class HubTaskWorkSpider:"""51 job 网站爬虫类"""def __init__(self):self.count = 1  # 记录当前爬第几条数据self.company = []self.desc_url_queue = Queue()  # 线程池队列self.pool = Pool(POOL_MAXSIZE)  # 线程池管理线程,最大协程数def work_spider(self):"""爬虫入口"""urls = [START_URL.format(p) for p in range(1, 16)]for url in urls:logger.info("爬取第 {} 页".format(urls.index(url) + 1))html = requests.get(url, headers=HEADERS).content.decode("gbk")bs = BeautifulSoup(html, "lxml").find("div", class_="dw_table").find_all("div", class_="el")for b in bs:try:href, post = b.find("a")["href"], b.find("a")["title"]locate = b.find("span", class_="t3").textsalary = b.find("span", class_="t4").textitem = {"href": href, "post": post, "locate": locate, "salary": salary}self.desc_url_queue.put(href)  # 岗位详情链接加入队列self.company.append(item)except Exception:pass# 打印队列长度,即多少条岗位详情 urllogger.info("队列长度为 {} ".format(self.desc_url_queue.qsize()))@staticmethoddef insert_into_db():"""插入数据到数据库create table jobpost(j_salary float(3, 1),j_locate text,j_post text);"""conn = pymysql.connect(host="****",port=****,user="root",paswd="****",db="AAAA",charset="utf8",)cur = conn.cursor()with open(os.path.join("data", "post_salary.csv"), "r", encoding="utf-8") as f:f_csv = csv.reader(f)sql = "insert into jobpost(j_salary, j_locate, j_post) values(%s, %s, %s)"for row in f_csv:value = (row[0], row[1], row[2])try:cur.execute(sql, value)conn.commit()except Exception as e:logger.error(e)cur.close()def run(self):"""多线程爬取数据"""self.job_spider()self.execute_more_tasks(self.post_require)self.desc_url_queue.join()  # 主线程阻塞,等待队列清空def execute_more_tasks(self, target):"""协程池接收请求任务,可以扩展把解析,存储耗时操作加入各自队列,效率最大化:param target: 任务函数:param count: 启动线程数量"""for i in range(POOL_MAXSIZE):self.pool.apply_async(target)if __name__ == "__main__":spider = JobSpider()start = time.time()spider.run()logger.info("总耗时 {} 秒".format(time.time() - start))

本系统整体难度较低,主要包括三个步骤:收集招聘岗位数据,整理数据分析统计维度,结合echarts图表实现动态展示及推荐等。本系统采用Python语言开发,所用开发工具有pycharm 2022、visual studio code、在线uml制作工具process on、Mysql5.7、 插件包含Resharper、SQL Prompt等。
源码地址

Python爬虫+可视化分析技术实现招聘网站岗位数据抓取与分析推荐系统相关推荐

  1. python爬虫和数据分析的书籍_豆瓣书籍数据爬取与分析

    前言 17年底,买了清华大学出版社出版的<Hadoop权威指南>(第四版)学习,没想到这本书质量之差,超越我的想象,然后上网一看,也是骂声一片.从那个时候其就对出版社综合实力很感兴趣,想通 ...

  2. Python爬虫教程:微医挂号网医生数据抓取

    1. 写在前面 今天要抓取的一个网站叫做微医网站,地址为 https://www.guahao.com ,我们将通过python3爬虫抓取这个网址,然后数据存储到CSV里面,为后面的一些分析类的教程做 ...

  3. Python爬虫入门教程 21-100 网易云课堂课程数据抓取

    写在前面 今天咱们抓取一下网易云课堂的课程数据,这个网站的数据量并不是很大,我们只需要使用requests就可以快速的抓取到这部分数据了. 你第一步要做的是打开全部课程的地址,找出爬虫规律, 地址如下 ...

  4. 如何用python抓取文献_浅谈Python爬虫技术的网页数据抓取与分析

    浅谈 Python 爬虫技术的网页数据抓取与分析 吴永聪 [期刊名称] <计算机时代> [年 ( 卷 ), 期] 2019(000)008 [摘要] 近年来 , 随着互联网的发展 , 如何 ...

  5. python–爬虫–模拟登录全面介绍和简例–以抓取雅卓app为例

    转载请注明出处:python–爬虫–模拟登录全面介绍和简例–以抓取雅卓app为例 我们在前面的文章中已经学习了如果使用python进行数据抓取. 但我们常常会遇到一种场景,就是想要获取的页面内容或者接 ...

  6. python爬虫电影资源_【Python爬虫】第十六次 xpath整站抓取阳光电影网电影资源

    [Python爬虫]第十六次 xpath整站抓取阳光电影网电影资源# 一.解析电影url # 请求15题构造出的每个电影菜单的分页url,解析出每个电影url # 二.xpath解析电影资源 # 对第 ...

  7. Python爬虫系列之多多买菜小程序数据爬取

    Python爬虫系列之多多买菜小程序数据爬取 小程序爬虫接单.app爬虫接单.网页爬虫接单.接口定制.网站开发.小程序开发> 点击这里联系我们 < 微信请扫描下方二维码 代码仅供学习交流, ...

  8. Python爬虫系列之MeiTuan网页美食版块商家数据爬取

    Python爬虫系列之MeiTuan网页美食版块商家数据爬取 小程序爬虫接单.app爬虫接单.网页爬虫接单.接口定制.网站开发.小程序开发> 点击这里联系我们 < 微信请扫描下方二维码 代 ...

  9. [Python爬虫] 之二十七:Selenium +phantomjs 利用 pyquery抓取今日头条视频

    一.介绍 本例子用Selenium +phantomjs爬取今天头条视频(http://www.tvhome.com/news/)的信息,输入给定关键字抓取图片信息. 给定关键字:视频:融合:电视 二 ...

最新文章

  1. 【错误记录】发布 Flutter 插件包报错 ( It‘s strongly recommended to include a “homepage“ or “repository“ field )
  2. Python的setuptools详解【2】find_packages()
  3. 计算机统考分数短信显示合格,今年起全省八年级网考信息技术 成绩不合格不能升高中...
  4. 分治法在求解“最近对”问题中的应用(JAVA)
  5. Zookeeper ZAB 协议分析
  6. 我是不是来错地方了?
  7. Numpy:numpy包下载并导入Pycharm的方法
  8. 新手小白学JAVA-显示系统中文件的后缀名
  9. HTTP headers 详解 headers 常用属性
  10. oracle导出dmp文件合集
  11. markdown文件怎么转换成html,将markdown文件转换为html文件(MarkdownPad)
  12. 破解网页文字无法复制的方法
  13. 一个木函工具桌面测试版,支持Linux MacOS Windows
  14. Oracle提高命中率及优化
  15. 【线性代数的本质|笔记】线性组合、张成的空间、基
  16. c语言筛选奇数怎么表示,在excel表格中,有列数据1至100,如何筛选奇数或偶数?-excel怎么筛选奇数,excel按奇偶数筛选...
  17. python删除列索引_python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)...
  18. 数据库原理及应用mysql班答案_数据库原理与应用(MYSQL)答案
  19. java 移动短代支付_《中国2011年度移动游戏产业报告》正式发布(4)
  20. Arduino使用 旋转电位器

热门文章

  1. VUE element-ui之table表格自增序号(前端实现)
  2. pdfbox 创建pdf文档
  3. 干货推荐 | 掌握这几点,轻松玩转Bokeh可视化
  4. I Squared Capital将与Rubis就欧洲领先的石油产品、化学品、农产品和化肥存储公司Rubis Terminal开展合作
  5. 基于php的便民团购网站设计
  6. 【OpenCV】轮廓提取——findContours()
  7. ImmunoChemistry艾美捷基本细胞毒性试验试剂盒测定方案
  8. VirtualBox配置时出现:硬件加速配置页中已启用硬件虚拟化,但主机并不支持。需要禁用硬件虚拟化才能启动虚拟机。
  9. CSS中z-index的属性
  10. 132:vue+openlayers: 设置显示图层的层级数zIndex (示例代码)