基于大数据的学习资源推送系统

作者主页:IT研究室✨
个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。
☑文末获取源码☑
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目

文章目录

  • 一、开发环境
  • 二、系统功能模块
  • 三 、系统界面展示
  • 四、部分代码设计
  • 五、论文参考
  • 结语

一、开发环境

  • 开发语言:Python
  • 数据库:Hive
  • 系统架构:Hadoop
  • 后端:Spark
  • 前端:Vue

二、系统功能模块

  • 角色:用户、管理员
  • 功能:
    用户
    学习视频、新闻资讯;
    管理员
    用户管理、学习视频管理、学习类型管理、新闻资讯管理、数据统计分析。

三 、系统界面展示

基于大数据的学习资源推送系统_第1张图片
基于大数据的学习资源推送系统_第2张图片
基于大数据的学习资源推送系统_第3张图片
基于大数据的学习资源推送系统_第4张图片
基于大数据的学习资源推送系统_第5张图片
基于大数据的学习资源推送系统_第6张图片
基于大数据的学习资源推送系统_第7张图片
基于大数据的学习资源推送系统_第8张图片

四、部分代码设计

#构造浏览器
option = webdriver.ChromeOptions()
option.add_argument("--mute-audio")#浏览器静音
option.add_argument('--ignore-certificate-errors')#忽略证书错误
option.add_experimental_option("detach", True)#防止浏览器自动关闭
bro: WebDriver = webdriver.Chrome('d:\chromedriver\chromedriver.exe', options=option)
#定义登录页面
home_url = ('https://www.sqgj.gov.cn/video_learning/education/new_index.html')
#打开登录页面
bro.get (home_url)
time.sleep(3)
bro.maximize_window()#最大化窗口
time.sleep(3)
#输入用户名
bro.find_element('id', 'new_mobilePhoneLogin').send_keys('13992554268')
time.sleep(1)
#输入密码
bro.find_element('id', 'new_passWordLogin').send_keys('030820')
time.sleep(1)
#开始判断是否登录成功
url= (bro.current_url)#读取当前网页地址,
while url == (home_url) : #如果是登录页面表示没有登录成功
    bro.find_element('id','getIdentifyCode').click()
    time.sleep(3)
    yzm=bro.find_element('id', 'getIdentifyCode')
    bro.save_screenshot('a.png')
    location = yzm.location
    left = location['x']#获取验证最左边位置
    top = location['y']#获取验证码上边位置
    right = left + yzm.size['width']#获取验证码右边位置
    bottom = top + yzm.size['height']#获取验证码下边位置
    open_img = Image.open('a.png')#打开屏幕截图
    open_img = open_img.crop((left, top, right, bottom))#使用获取到的位置剪切图片
    open_img.save('b.png')#保存图片
    def initTable(threshold=30):
        table = []
        for i in range(256):
            if i < threshold:
                table.append(0)
            else:
                table.append(1)
        return table
    def yzmocr(yzmtp) :
        im = Image.open(yzmtp)
        im = im.convert('L')#去色
        binaryImage = im.point(initTable(), '1')
        im1 = binaryImage.convert('L')
        im2 = im1.convert('1')
        asd = pytesseract.image_to_string(im2, config="-c tessedit_char_whitelist=0123456789")
        return asd
    yzm_txt=yzmocr('b.png')
    time.sleep(1)
    bro.find_element('name','new_identifyCode').clear()
    time.sleep(1)
    bro.find_element('name','new_identifyCode').send_keys(yzm_txt)
    time.sleep(1)
    url= (bro.current_url)#更新当前网页地址
    time.sleep(1)
else:
    time.sleep(0.5)
i=0
while i<20 :
    i=i+1
    print(i)
    #刷新第一个页面
    windows = bro.window_handles
    bro.switch_to.window(windows[0])
    bro.refresh()
    time.sleep(5)
    bro.find_element('class name','reStudy').click()#点击当前页面第一个课程

    #切换到视频窗口
    time.sleep(3)
    windows = bro.window_handles
    # 切换到当前最新打开的窗口
    bro.switch_to.window(windows[-1])
    time.sleep(3)
    #进入课程选择视频页面
    #学习过的视频元素显示鼠标指针,没有学习过的显示为手指,未学习的视频有style="cursor:pointer"属性。
    bro.find_element('xpath','//*[@style="cursor:pointer;"]').click()
    time.sleep(3)
    windows = bro.window_handles
    # 切换到当前最新打开的窗口
    bro.switch_to.window(windows[-1])
    time.sleep(3)
    #切换到弹出窗口
    bro.switch_to.frame('playResourceFrame')
    #判断窗口类型,再执行相应的指令
    try:
        bro.find_element('class name','user_choise').click()#开始播放
    except NoSuchElementException:
        pass
    try:
        bro.find_element('id','beginStudyButton').click()#开始播放
    except NoSuchElementException:
        pass
    # try:
    #     bro.find_element('id','toPlay').click()#开始播放,这种格式是自动播放,如果直接点击会'element not interactable'报错
    #     time.sleep(1)
    # except NoSuchElementException:
    #     pass

五、论文参考

基于大数据的学习资源推送系统_第9张图片

结语

大家可以帮忙点赞、收藏、关注、评论啦~
源码获取:私信我

精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目

你可能感兴趣的:(Java项目,大数据,spark,hadoop,毕业设计,毕设)