基于大数据的学习资源推送系统
用户:学习视频、新闻资讯;管理员:用户管理、学习视频管理、学习类型管理、新闻资讯管理、数据统计分析。
·
✨作者主页:IT研究室✨
个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。
☑文末获取源码☑
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目
一、开发环境
- 开发语言:Python
- 数据库:Hive
- 系统架构:Hadoop
- 后端:Spark
- 前端:Vue
二、系统功能模块
- 角色:用户、管理员
- 功能:
用户:
学习视频、新闻资讯;
管理员:
用户管理、学习视频管理、学习类型管理、新闻资讯管理、数据统计分析。
三 、系统界面展示
四、部分代码设计
#构造浏览器
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
五、论文参考
结语
大家可以帮忙点赞、收藏、关注、评论啦~
源码获取:私信我
更多推荐
所有评论(0)