大数据开辟基于Hadoop+springboot平台的岗位保举系统

打印 上一主题 下一主题

主题 815|帖子 815|积分 2445


前言

文章底部名片,获取项目标完整演示视频,免费解答技能疑问
项目介绍

  随着网络科学技能不绝的发展和普及化,用户在寻找适合本身的信息管理系统时面临着越来越大的挑衅。因此,本文介绍了一套平台的岗位保举系统,在技能实现方面,本系统接纳JAVA、VUE、TOMCAT、HADOOP以及MySQL数据库编程,利用Spring boot框架实现前后端的毗连和交互功能。用户需要先注册账号,然后才能登录系统并使勤奋能。本文还对平台的岗位保举系统的研究近况和意义进行了详细介绍。随着大数据和人工智能技能的不绝发展,大数据分析系统正逐渐成为网络应用中越来越重要的部门。本文提出的平台的岗位保举系统将为用户提供更加高效和准确的信息智能化服务,满意用户的需求。总之,本文旨在介绍一套具有现实应用意义的平台的岗位保举系统,针对传统管理方式进行了重要改进。通过对系统的实现和应用,本文展示了高效、准确的平台的岗位保举系统应该具备的特点和功能,为平台的岗位保举系统的研究和应用提供了有益的参考。
技能介绍

开辟语言:Java
框架:springboot
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql
数据库工具:Navicat11
开辟软件:eclipse/myeclipse/idea
Maven包:Maven
功能介绍

本文介绍了一个基于 Hadoop 平台的岗位保举系统,该系统在B/S体系布局下,并通过MySQL数据库和Spring boot框架实现数据存储和前端展示。用户通过浏览器与网站进行交互。整个系统具有很好的可扩展性和安全性,为用户提供了更好的服务。系统的总体架构计划图如图4-1所示。

  1. 图 4-1系统架构图
复制代码
核心代码

  1. # 数据爬取文件
  2. import scrapy
  3. import pymysql
  4. import pymssql
  5. from ..items import LvyoujingdianItem
  6. import time
  7. import re
  8. import random
  9. import platform
  10. import json
  11. import os
  12. import urllib
  13. from urllib.parse import urlparse
  14. import requests
  15. import emoji
  16. # 旅游景点
  17. class LvyoujingdianSpider(scrapy.Spider):
  18.     name = 'lvyoujingdianSpider'
  19.     spiderUrl = 'https://you.ctrip.com/sight/lanzhou231/s0-p{}.html'
  20.     start_urls = spiderUrl.split(";")
  21.     protocol = ''
  22.     hostname = ''
  23.     def __init__(self, *args, **kwargs):
  24.         super().__init__(*args, **kwargs)
  25.     def start_requests(self):
  26.         plat = platform.system().lower()
  27.         if plat == 'linux' or plat == 'windows':
  28.             connect = self.db_connect()
  29.             cursor = connect.cursor()
  30.             if self.table_exists(cursor, '5295r_lvyoujingdian') == 1:
  31.                 cursor.close()
  32.                 connect.close()
  33.                 self.temp_data()
  34.                 return
  35.         pageNum = 1 + 1
  36.         for url in self.start_urls:
  37.             if '{}' in url:
  38.                 for page in range(1, pageNum):
  39.                     next_link = url.format(page)
  40.                     yield scrapy.Request(
  41.                         url=next_link,
  42.                         callback=self.parse
  43.                     )
  44.             else:
  45.                 yield scrapy.Request(
  46.                     url=url,
  47.                     callback=self.parse
  48.                 )
  49.     # 列表解析
  50.     def parse(self, response):
  51.         
  52.         _url = urlparse(self.spiderUrl)
  53.         self.protocol = _url.scheme
  54.         self.hostname = _url.netloc
  55.         plat = platform.system().lower()
  56.         if plat == 'windows_bak':
  57.             pass
  58.         elif plat == 'linux' or plat == 'windows':
  59.             connect = self.db_connect()
  60.             cursor = connect.cursor()
  61.             if self.table_exists(cursor, '5295r_lvyoujingdian') == 1:
  62.                 cursor.close()
  63.                 connect.close()
  64.                 self.temp_data()
  65.                 return
  66.         list = response.css('div.list_wide_mod2 div.list_mod2')
  67.         
  68.         for item in list:
  69.             fields = LvyoujingdianItem()
  70.             if '(.*?)' in '''dt a::attr(href)''':
  71.                 fields["laiyuan"] = re.findall(r'''dt a::attr(href)''', response.text, re.DOTALL)[0].strip()
  72.             else:
  73.                 fields["laiyuan"] = self.remove_html(item.css('dt a::attr(href)').extract_first())
  74.             if '(.*?)' in '''div.leftimg a img::attr(src)''':
  75.                 fields["fengmian"] = re.findall(r'''div.leftimg a img::attr(src)''', response.text, re.DOTALL)[0].strip()
  76.             else:
  77.                 fields["fengmian"] = self.remove_html(item.css('div.leftimg a img::attr(src)').extract_first())
  78.             if '(.*?)' in '''div.rdetailbox dl dt a::text''':
  79.                 fields["biaoti"] = re.findall(r'''div.rdetailbox dl dt a::text''', response.text, re.DOTALL)[0].strip()
  80.             else:
  81.                 fields["biaoti"] = self.remove_html(item.css('div.rdetailbox dl dt a::text').extract_first())
  82.             if '(.*?)' in '''b.hot_score_number::text''':
  83.                 fields["redu"] = re.findall(r'''b.hot_score_number::text''', response.text, re.DOTALL)[0].strip()
  84.             else:
  85.                 fields["redu"] = self.remove_html(item.css('b.hot_score_number::text').extract_first())
  86.             if '(.*?)' in '''dd.ellipsis::text''':
  87.                 fields["dizhi"] = re.findall(r'''dd.ellipsis::text''', response.text, re.DOTALL)[0].strip()
  88.             else:
  89.                 fields["dizhi"] = self.remove_html(item.css('dd.ellipsis::text').extract_first())
  90.             if '(.*?)' in '''a.score strong::text''':
  91.                 fields["pingfen"] = re.findall(r'''a.score strong::text''', response.text, re.DOTALL)[0].strip()
  92.             else:
  93.                 fields["pingfen"] = self.remove_html(item.css('a.score strong::text').extract_first())
  94.             if '(.*?)' in '''a.recomment::text''':
  95.                 fields["pinglun"] = re.findall(r'''a.recomment::text''', response.text, re.DOTALL)[0].strip()
  96.             else:
  97.                 fields["pinglun"] = self.remove_html(item.css('a.recomment::text').extract_first())
  98.             if '(.*?)' in '''p[class="bottomcomment ellipsis open_popupbox_a"]''':
  99.                 fields["dianping"] = re.findall(r'''p[class="bottomcomment ellipsis open_popupbox_a"]''', response.text, re.DOTALL)[0].strip()
  100.             else:
  101.                 fields["dianping"] = self.remove_html(item.css('p[class="bottomcomment ellipsis open_popupbox_a"]').extract_first())
  102.             detailUrlRule = item.css('dt a::attr(href)').extract_first()
  103.             if self.protocol in detailUrlRule:
  104.                 pass
  105.             elif detailUrlRule.startswith('//'):
  106.                 detailUrlRule = self.protocol + ':' + detailUrlRule
  107.             else:
  108.                 detailUrlRule = self.protocol + '://' + self.hostname + detailUrlRule
  109.                 fields["laiyuan"] = detailUrlRule
  110.             yield scrapy.Request(url=detailUrlRule, meta={'fields': fields},  callback=self.detail_parse, dont_filter=True)
  111.     # 详情解析
  112.     def detail_parse(self, response):
  113.         fields = response.meta['fields']
  114.         try:
  115.             if '(.*?)' in '''<div class="baseInfoItem"><p class="baseInfoTitle">官方电话</p><p class="baseInfoText">(.*?)</p></div>''':
  116.                 fields["gfdh"] = re.findall(r'''<div class="baseInfoItem"><p class="baseInfoTitle">官方电话</p><p class="baseInfoText">(.*?)</p></div>''', response.text, re.S)[0].strip()
  117.             else:
  118.                 if 'gfdh' != 'xiangqing' and 'gfdh' != 'detail' and 'gfdh' != 'pinglun' and 'gfdh' != 'zuofa':
  119.                     fields["gfdh"] = self.remove_html(response.css('''<div class="baseInfoItem"><p class="baseInfoTitle">官方电话</p><p class="baseInfoText">(.*?)</p></div>''').extract_first())
  120.                 else:
  121.                     fields["gfdh"] = emoji.demojize(response.css('''<div class="baseInfoItem"><p class="baseInfoTitle">官方电话</p><p class="baseInfoText">(.*?)</p></div>''').extract_first())
  122.         except:
  123.             pass
  124.         try:
  125.             if '(.*?)' in '''div[class="detailModule normalModule"]''':
  126.                 fields["detail"] = re.findall(r'''div[class="detailModule normalModule"]''', response.text, re.S)[0].strip()
  127.             else:
  128.                 if 'detail' != 'xiangqing' and 'detail' != 'detail' and 'detail' != 'pinglun' and 'detail' != 'zuofa':
  129.                     fields["detail"] = self.remove_html(response.css('''div[class="detailModule normalModule"]''').extract_first())
  130.                 else:
  131.                     fields["detail"] = emoji.demojize(response.css('''div[class="detailModule normalModule"]''').extract_first())
  132.         except:
  133.             pass
  134.         return fields
  135.     # 去除多余html标签
  136.     def remove_html(self, html):
  137.         if html == None:
  138.             return ''
  139.         pattern = re.compile(r'<[^>]+>', re.S)
  140.         return pattern.sub('', html).strip()
  141.     # 数据库连接
  142.     def db_connect(self):
  143.         type = self.settings.get('TYPE', 'mysql')
  144.         host = self.settings.get('HOST', 'localhost')
  145.         port = int(self.settings.get('PORT', 3306))
  146.         user = self.settings.get('USER', 'root')
  147.         password = self.settings.get('PASSWORD', '123456')
  148.         try:
  149.             database = self.databaseName
  150.         except:
  151.             database = self.settings.get('DATABASE', '')
  152.         if type == 'mysql':
  153.             connect = pymysql.connect(host=host, port=port, db=database, user=user, passwd=password, charset='utf8')
  154.         else:
  155.             connect = pymssql.connect(host=host, user=user, password=password, database=database)
  156.         return connect
  157.     # 断表是否存在
  158.     def table_exists(self, cursor, table_name):
  159.         cursor.execute("show tables;")
  160.         tables = [cursor.fetchall()]
  161.         table_list = re.findall('(\'.*?\')',str(tables))
  162.         table_list = [re.sub("'",'',each) for each in table_list]
  163.         if table_name in table_list:
  164.             return 1
  165.         else:
  166.             return 0
  167.     # 数据缓存源
  168.     def temp_data(self):
  169.         connect = self.db_connect()
  170.         cursor = connect.cursor()
  171.         sql = '''
  172.             insert into `lvyoujingdian`(
  173.                 id
  174.                 ,laiyuan
  175.                 ,fengmian
  176.                 ,biaoti
  177.                 ,redu
  178.                 ,dizhi
  179.                 ,pingfen
  180.                 ,pinglun
  181.                 ,dianping
  182.                 ,gfdh
  183.                 ,detail
  184.             )
  185.             select
  186.                 id
  187.                 ,laiyuan
  188.                 ,fengmian
  189.                 ,biaoti
  190.                 ,redu
  191.                 ,dizhi
  192.                 ,pingfen
  193.                 ,pinglun
  194.                 ,dianping
  195.                 ,gfdh
  196.                 ,detail
  197.             from `5295r_lvyoujingdian`
  198.             where(not exists (select
  199.                 id
  200.                 ,laiyuan
  201.                 ,fengmian
  202.                 ,biaoti
  203.                 ,redu
  204.                 ,dizhi
  205.                 ,pingfen
  206.                 ,pinglun
  207.                 ,dianping
  208.                 ,gfdh
  209.                 ,detail
  210.             from `lvyoujingdian` where
  211.                 `lvyoujingdian`.id=`5295r_lvyoujingdian`.id
  212.             ))
  213.             limit {0}
  214.         '''.format(random.randint(10,15))
  215.         cursor.execute(sql)
  216.         connect.commit()
  217.         connect.close()
复制代码
数据库参考

  1. --
  2. -- Table structure for table `chat`
  3. --
  4. DROP TABLE IF EXISTS `chat`;
  5. /*!40101 SET @saved_cs_client     = @@character_set_client */;
  6. /*!40101 SET character_set_client = utf8 */;
  7. CREATE TABLE `chat` (
  8.   `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  9.   `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  10.   `userid` bigint(20) NOT NULL COMMENT '用户id',
  11.   `adminid` bigint(20) DEFAULT NULL COMMENT '管理员id',
  12.   `ask` longtext COMMENT '提问',
  13.   `reply` longtext COMMENT '回复',
  14.   `isreply` int(11) DEFAULT NULL COMMENT '是否回复',
  15.   PRIMARY KEY (`id`)
  16. ) ENGINE=InnoDB AUTO_INCREMENT=69 DEFAULT CHARSET=utf8 COMMENT='在线咨询';
  17. /*!40101 SET character_set_client = @saved_cs_client */;
  18. --
  19. -- Dumping data for table `chat`
  20. --
  21. LOCK TABLES `chat` WRITE;
  22. /*!40000 ALTER TABLE `chat` DISABLE KEYS */;
  23. INSERT INTO `chat` VALUES (61,'2024-03-30 04:52:45',1,1,'提问1','回复1',1),(62,'2024-03-30 04:52:45',2,2,'提问2','回复2',2),(63,'2024-03-30 04:52:45',3,3,'提问3','回复3',3),(64,'2024-03-30 04:52:45',4,4,'提问4','回复4',4),(65,'2024-03-30 04:52:45',5,5,'提问5','回复5',5),(66,'2024-03-30 04:52:45',6,6,'提问6','回复6',6),(67,'2024-03-30 04:52:45',7,7,'提问7','回复7',7),(68,'2024-03-30 04:52:45',8,8,'提问8','回复8',8);
  24. /*!40000 ALTER TABLE `chat` ENABLE KEYS */;
  25. UNLOCK TABLES;
  26. --
  27. -- Table structure for table `config`
  28. --
  29. DROP TABLE IF EXISTS `config`;
  30. /*!40101 SET @saved_cs_client     = @@character_set_client */;
  31. /*!40101 SET character_set_client = utf8 */;
  32. CREATE TABLE `config` (
  33.   `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  34.   `name` varchar(100) NOT NULL COMMENT '配置参数名称',
  35.   `value` varchar(100) DEFAULT NULL COMMENT '配置参数值',
  36.   `url` varchar(500) DEFAULT NULL COMMENT 'url',
  37.   PRIMARY KEY (`id`)
  38. ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='配置文件';
  39. /*!40101 SET character_set_client = @saved_cs_client */;
  40. --
  41. -- Dumping data for table `config`
  42. --
  43. LOCK TABLES `config` WRITE;
  44. /*!40000 ALTER TABLE `config` DISABLE KEYS */;
  45. INSERT INTO `config` VALUES (1,'picture1','upload/picture1.jpg',NULL),(2,'picture2','upload/picture2.jpg',NULL),(3,'picture3','upload/picture3.jpg',NULL);
  46. /*!40000 ALTER TABLE `config` ENABLE KEYS */;
  47. UNLOCK TABLES;
  48. --
  49. -- Table structure for table `discussqiyezhaopin`
  50. --
  51. DROP TABLE IF EXISTS `discussqiyezhaopin`;
  52. /*!40101 SET @saved_cs_client     = @@character_set_client */;
  53. /*!40101 SET character_set_client = utf8 */;
  54. CREATE TABLE `discussqiyezhaopin` (
  55.   `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  56.   `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  57.   `refid` bigint(20) NOT NULL COMMENT '关联表id',
  58.   `userid` bigint(20) NOT NULL COMMENT '用户id',
  59.   `avatarurl` longtext COMMENT '头像',
  60.   `nickname` varchar(200) DEFAULT NULL COMMENT '用户名',
  61.   `content` longtext NOT NULL COMMENT '评论内容',
  62.   `reply` longtext COMMENT '回复内容',
  63.   PRIMARY KEY (`id`)
  64. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='企业招聘评论表';
  65. /*!40101 SET character_set_client = @saved_cs_client */;
  66. --
  67. -- Dumping data for table `discussqiyezhaopin`
  68. --
  69. LOCK TABLES `discussqiyezhaopin` WRITE;
  70. /*!40000 ALTER TABLE `discussqiyezhaopin` DISABLE KEYS */;
  71. /*!40000 ALTER TABLE `discussqiyezhaopin` ENABLE KEYS */;
  72. UNLOCK TABLES;
  73. --
  74. -- Table structure for table `forum`
  75. --
  76. DROP TABLE IF EXISTS `forum`;
  77. /*!40101 SET @saved_cs_client     = @@character_set_client */;
  78. /*!40101 SET character_set_client = utf8 */;
  79. CREATE TABLE `forum` (
  80.   `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  81.   `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  82.   `title` varchar(200) DEFAULT NULL COMMENT '帖子标题',
  83.   `content` longtext NOT NULL COMMENT '帖子内容',
  84.   `parentid` bigint(20) DEFAULT NULL COMMENT '父节点id',
  85.   `userid` bigint(20) NOT NULL COMMENT '用户id',
  86.   `username` varchar(200) DEFAULT NULL COMMENT '用户名',
  87.   `avatarurl` longtext COMMENT '头像',
  88.   `isdone` varchar(200) DEFAULT NULL COMMENT '状态',
  89.   `istop` int(11) DEFAULT '0' COMMENT '是否置顶',
  90.   `toptime` datetime DEFAULT NULL COMMENT '置顶时间',
  91.   PRIMARY KEY (`id`)
  92. ) ENGINE=InnoDB AUTO_INCREMENT=79 DEFAULT CHARSET=utf8 COMMENT='论坛交流';
  93. /*!40101 SET character_set_client = @saved_cs_client */;
  94. --
  95. -- Dumping data for table `forum`
  96. --
  97. LOCK TABLES `forum` WRITE;
  98. /*!40000 ALTER TABLE `forum` DISABLE KEYS */;
  99. INSERT INTO `forum` VALUES (71,'2024-03-30 04:52:45','帖子标题1','帖子内容1',0,1,'用户名1','upload/forum_avatarurl1.jpg,upload/forum_avatarurl2.jpg,upload/forum_avatarurl3.jpg','开放',0,'2024-03-30 12:52:45'),(72,'2024-03-30 04:52:45','帖子标题2','帖子内容2',0,2,'用户名2','upload/forum_avatarurl2.jpg,upload/forum_avatarurl3.jpg,upload/forum_avatarurl4.jpg','开放',0,'2024-03-30 12:52:45'),(73,'2024-03-30 04:52:45','帖子标题3','帖子内容3',0,3,'用户名3','upload/forum_avatarurl3.jpg,upload/forum_avatarurl4.jpg,upload/forum_avatarurl5.jpg','开放',0,'2024-03-30 12:52:45'),(74,'2024-03-30 04:52:45','帖子标题4','帖子内容4',0,4,'用户名4','upload/forum_avatarurl4.jpg,upload/forum_avatarurl5.jpg,upload/forum_avatarurl6.jpg','开放',0,'2024-03-30 12:52:45'),(75,'2024-03-30 04:52:45','帖子标题5','帖子内容5',0,5,'用户名5','upload/forum_avatarurl5.jpg,upload/forum_avatarurl6.jpg,upload/forum_avatarurl7.jpg','开放',0,'2024-03-30 12:52:45'),(76,'2024-03-30 04:52:45','帖子标题6','帖子内容6',0,6,'用户名6','upload/forum_avatarurl6.jpg,upload/forum_avatarurl7.jpg,upload/forum_avatarurl8.jpg','开放',0,'2024-03-30 12:52:45'),(77,'2024-03-30 04:52:45','帖子标题7','帖子内容7',0,7,'用户名7','upload/forum_avatarurl7.jpg,upload/forum_avatarurl8.jpg,upload/forum_avatarurl9.jpg','开放',0,'2024-03-30 12:52:45'),(78,'2024-03-30 04:52:45','帖子标题8','帖子内容8',0,8,'用户名8','upload/forum_avatarurl8.jpg,upload/forum_avatarurl9.jpg,upload/forum_avatarurl10.jpg','开放',0,'2024-03-30 12:52:45');
  100. /*!40000 ALTER TABLE `forum` ENABLE KEYS */;
  101. UNLOCK TABLES;
  102. --
  103. -- Table structure for table `gangweifenlei`
  104. --
  105. DROP TABLE IF EXISTS `gangweifenlei`;
  106. /*!40101 SET @saved_cs_client     = @@character_set_client */;
  107. /*!40101 SET character_set_client = utf8 */;
  108. CREATE TABLE `gangweifenlei` (
  109.   `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  110.   `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  111.   `gangweifenlei` varchar(200) DEFAULT NULL COMMENT '岗位分类',
  112.   PRIMARY KEY (`id`)
  113. ) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8 COMMENT='岗位分类';
  114. /*!40101 SET character_set_client = @saved_cs_client */;
复制代码
系统结果图










文章目次

目次
第1章 序言 1
1.1选题配景及意义 1
1.2国内外研究状况 2
1.3课题研究的主要内容 2
1.4文章的内容布局安排 3
第2章 相干理论技能介绍 4
2.1 Spring boot框架 5
2.2 Java语言简介 5
2.3爬虫技能简介 6
2.4VUE简介 7
2.5Hadoop简介 7
第3章 系统需求分析 9
3.1 可行性分析 10
3.1.1网站技能可行性分析 12
3.1.2网络经济可行性分析 14
3.1.3网络运行可行性分析 16
3.2 非功能性需求分析 18
3.3系统用例图 20
3.4 系统流程图 21
第4章 系统计划 22
4.1系统总体架构 25
4.2岗位爬虫的模子计划 25
4.3数据库计划 25
4.3.1 数据库E-R图计划 27
4.3.2 数据库表计划 29
第5章 系统实现 30
5.1注册、登录模块 31
5.2用户后台功能模块实现 32
5.3管理员后端模块实现 32
5.4岗位保举系统看板展示 33
第6章 系统测试 35
6.1测试方法 36
6.2测试用例 37
结束语 38
参考文献 39
致谢 40

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

大连密封材料

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表