天天看點

Java,SpringBoot,Vue,Python爬蟲,Hadoop大資料旅遊推薦管理系統

作者:程式猿大波

摘要

本系統是一個基于Java, SpringBoot, Vue, Python爬蟲, Hadoop大資料技術的旅遊推薦管理系統。該系統旨在為使用者提供個性化的旅遊推薦服務,通過分析使用者的旅遊曆史資料和行為模式,為使用者推薦合适的旅遊目的地、景點等。

系統采用SpringBoot作為後端架構,負責處理使用者請求、資料分析和推薦算法的實作。前端使用Vue.js建構使用者界面,提供友好的使用者互動體驗。Python爬蟲用于爬取網絡上的旅遊資訊,為推薦算法提供資料支援。Hadoop大資料技術用于存儲和處理海量的旅遊資料,提高系統的資料處理能力。

通過本系統,使用者可以更友善地擷取個性化的旅遊推薦服務,提高旅遊體驗。同時,系統可以為旅遊相關企業提供有價值的使用者行為分析和市場洞察,幫助企業優化産品和服務。

Java,SpringBoot,Vue,Python爬蟲,Hadoop大資料旅遊推薦管理系統
Java,SpringBoot,Vue,Python爬蟲,Hadoop大資料旅遊推薦管理系統

功能介紹

本系統的功能應該包括:注冊登入、遊客統計、輿情分析、旅遊推薦、使用者管理等功能。

注冊登入:新使用者可以填寫相關資訊進行注冊,使用者使用賬号和密碼登入網站,方可使用相關功能;

遊客統計:根據職業或者景點展示旅遊熱度綜合指數,使用者也可以釋出對景點的評價;

輿情分析:爬取資料并分析後,使用柱狀圖等展示熱門景點實時熱度等資訊;

旅遊推薦:使用爬取并分析後的景點或者城市相關資料進行推薦,友善使用者擷取實時的旅遊推薦資料;

使用者管理:管理者可以對使用者的資訊進管理,也可以手動新增使用者。

Java,SpringBoot,Vue,Python爬蟲,Hadoop大資料旅遊推薦管理系統
Java,SpringBoot,Vue,Python爬蟲,Hadoop大資料旅遊推薦管理系統

技術介紹

後端:Java語言、Spring Boot架構、MuSQL資料庫、maven依賴管理等;

前端:Vue、Element ui等;

爬蟲:Python;

大資料分析:Hadoop。

Java,SpringBoot,Vue,Python爬蟲,Hadoop大資料旅遊推薦管理系統
Java,SpringBoot,Vue,Python爬蟲,Hadoop大資料旅遊推薦管理系統

部分代碼展示

<template>
  <div class="layui-card" id="app">

    <el-container class="margin-t">
      <el-header class="main-view" height="10vh">
        <el-form :inline="true" class="demo-form-inline">
          <el-form-item label="使用者昵稱">
            <el-input v-model="title" placeholder="輸入昵稱"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" @click="onSubmit">查詢</el-button>
          </el-form-item>
		  <el-form-item>
		    <el-button type="success" @click="add()">新增使用者</el-button>
		  </el-form-item>
        </el-form>
      
      
      </el-header>
      <el-main class="main-view" style="min-height: 87vh;">
		<div style="height: 87vh;">
			<el-table :stripe="true" :data="tableData" style="width: 100%">
			  <el-table-column prop="uid" label="ID" width="80">
			  </el-table-column>
			  <el-table-column prop="nickName" label="使用者名" width="100">
			    <template slot-scope="scope">
			      <div class="text-ellipsis-2">{{scope.row.nickName}}</div>
			    </template>
			  </el-table-column>
			  <el-table-column prop="phone" label="手機号" width="150">
			    <template slot-scope="scope">
			      <div class="text-ellipsis-2">{{scope.row.phone}}</div>
			    </template>
			  </el-table-column>
			  <el-table-column prop="job" label="職業" width="90">
			    <template slot-scope="scope">
			      <div class="text-ellipsis-2">{{scope.row.job}}</div>
			    </template>
			  </el-table-column>
			  <el-table-column prop="edu" label="學曆" width="90">
			    <template slot-scope="scope">
			      <div class="text-ellipsis-2">{{scope.row.edu}}</div>
			    </template>
			  </el-table-column>
			  <el-table-column prop="address" label="所在地" width="90">
			    <template slot-scope="scope">
			      <div class="text-ellipsis-2">{{scope.row.address}}</div>
			    </template>
			  </el-table-column>
			 <!-- <el-table-column prop="sex" label="性别" width="80">
			    <template slot-scope="scope">
			      <div class="text-ellipsis-2">{{scope.row.sex}}</div>
			    </template>
			  </el-table-column> -->
			  
			  <!-- <el-table-column prop="pic" label="頭像" width="100">
			    <template slot-scope="scope">
			      <div>
			        <div v-if="!scope.row.pic" class="text-ellipsis-2">未上傳</div>
			        <el-image v-else :preview-src-list="[picPath+scope.row.pic ]" :src="picPath+scope.row.pic"
			          style="width: 80px; height: 80px;box-shadow: 1px 1px 5px rgba(0,0,0,0.1)">
			          <div slot="error" class="image-slot">
			            <i class="el-icon-picture-outline"></i>
			          </div>
			        </el-image>
			      </div>
			    </template>
			  </el-table-column> -->
			
			  
				<el-table-column prop="title" label="類型" width="100">
				  <template slot-scope="scope">
				    <div class="text-ellipsis-2">{{scope.row.type==1?"管理者":(scope.row.type==2?'員工':"使用者")}}</div>
				  </template>
				</el-table-column>
			  <el-table-column prop="createTime" label="添加時間" width="180">
			  </el-table-column>
			  <el-table-column label="操作" width="250">
			    <template slot-scope="scope">
			      <el-button @click="toEdit(scope.row)" type="text" size="small">編輯</el-button>
			      <el-button @click="delData(scope.row)" type="text" class="text-red" size="small">删除</el-button>
				  <el-button @click="resetPass(scope.row)" type="text" class="text-red" size="small">重置密碼</el-button>
			    </template>
			  </el-table-column>
			</el-table>
		</div>
        

      </el-main>
    </el-container>

    <el-dialog title="編輯使用者" :visible.sync="show">
      <el-form :model="dataView">
        
		<el-form :model="dataView">
			<el-form-item label="昵稱" label-width="120px">
				<el-input v-model="dataView.nickName" autocomplete="off"></el-input>
			</el-form-item>
			<el-form-item label="電話" label-width="120px">
				<el-input v-model="dataView.phone" autocomplete="off"></el-input>
			</el-form-item>
			<el-form-item label="所在地" label-width="120px">
				<el-select v-model="dataView.address" placeholder="請選擇">
				    <el-option
				      v-for="item in cityList"
				      :key="item.value"
				      :label="item.label"
				      :value="item.value">
				    </el-option>
				  </el-select>
			</el-form-item>
			<el-form-item label="職業" label-width="120px">
				<el-input v-model="dataView.job" autocomplete="off"></el-input>
			</el-form-item>
			<el-form-item label="學曆" label-width="120px">
				<el-input v-model="dataView.edu" autocomplete="off"></el-input>
			</el-form-item>
			<!-- <el-form-item label="頭像" label-width="120px">
			  <div style="display: flex;justify-content: space-between;">
			    <div>
			      <el-image :preview-src-list="[getPicUrl(dataView.pic)]" :src="getPicUrl(dataView.pic)"
			        style="width: 100px; height: 100px;box-shadow: 1px 1px 5px rgba(0,0,0,0.1)">
			        <div slot="error" class="image-slot">
			          <i class="el-icon-picture-outline" style="font-size: 100px;"></i>
			        </div>
			      </el-image>
			      <div style="display: flex;justify-content: space-between;">
			        <div style="text-align: center;">頭像</div>
			        <div @click="editPic(dataView,'')" style="text-align: center;color: #63a35c;">修改</div>
			      </div>
			    </div>
			  </div>
			</el-form-item> -->
			<el-form-item label="類型" label-width="120px">
				<el-select v-model="dataView.type" placeholder="請選擇">
				  <el-option label="使用者" :value="2"></el-option>
				  <el-option label="管理者" :value="1"></el-option>
				</el-select>
			</el-form-item>
			<el-form-item label="密碼" label-width="120px">
				<div v-if="!dataView.uid">預設123456</div>
			</el-form-item>
			
		</el-form>

      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="show = false">取 消</el-button>
        <el-button type="primary" @click="editData">确 定</el-button>
      </div>
    </el-dialog>

  </div>
</template>
           

擷取源碼請關注後私信“20240430”

繼續閱讀