Python趣味爬虫之用Python实现智慧校园一键评教


Posted in Python onMay 28, 2021

一、安装selenium库

问题1:什么是selenium模块?

  • 基于浏览器自动化的一个模块。

 问题2:selenium模块有什么作用呢?

  • 便捷地获取网站中动态加载的数据
  • 便捷地实现模拟登录

问题3:环境安装

pip install selenium

二、下载一个浏览器的驱动程序(谷歌浏览器)

1.下载路径

http://chromedriver.storage.googleapis.com/index.html

2.驱动程序和浏览器的映射关系(谷歌浏览器)

方法1:[不推荐]

在浏览器地址栏输入:chrome://version/

Python趣味爬虫之用Python实现智慧校园一键评教

  • 复制版本号,只取前三节

示例:版本号为90.0.4430.212,只需复制90.0.4430

示例:https://chromedriver.storage.googleapis.com/LATEST_RELEASE_90.0.4430

博主尝试了没有成功

Python趣味爬虫之用Python实现智慧校园一键评教

方法2:[推荐]

安装webdriver-manager

pip install webdriver-manager

运行如下代码

import time
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
# from webdriver_manager.microsoft import EdgeChromiumDriverManager
options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
driver = webdriver.Chrome(ChromeDriverManager().install(),chrome_options=options)
# driver = webdriver.Edge(EdgeChromiumDriverManager().install())
driver.get('https://www.baidu.com/s?wd=123')
driver.close()

很简单,省很多事

三、智慧校园评教实现

1.新建python文件导入相关包

from selenium import webdriver
import time
from lxml import etree

2. 使用selenium打开登录页面

# 实例化一个浏览器对象
bro = webdriver.Chrome(executable_path='./chromedriver')# 驱动程序所在路径
# 让浏览器发起一个指定url对应请求
bro.get('http://sso.cqcet.edu.cn/login')

Python趣味爬虫之用Python实现智慧校园一键评教

3.录入用户名密码,点击登录按钮实现登录

# 标签定位
username_input = bro.find_element_by_id('username')
password_input = bro.find_element_by_id('password')
# 标签交互
username_input.send_keys('**********')# 智慧校园账号
password_input.send_keys('**********')# 智慧校园密码
# 点击登入按钮
btn = bro.find_element_by_class_name('logon-btn')
btn.click()
time.sleep(2)# 停顿2s

Python趣味爬虫之用Python实现智慧校园一键评教

4.进入教学评价系统

# 点击学评教管理
bro.get('http://ossc.cqcet.edu.cn/xg/teaching/student/index/teach')
bro.find_element_by_class_name('nav-label').click()
time.sleep(2)
# 点击学生评教
bro.get('http://ossc.cqcet.edu.cn/xg/teaching/student/xskb')
# page_source获取浏览器当前页面的页面源码数据
page_text = bro.page_source

Python趣味爬虫之用Python实现智慧校园一键评教

5.实现评教操作

# 解析onclick里面的内容
tree = etree.HTML(page_text)
onclick_list = tree.xpath('//*[@id="bootstrap-table"]/tbody//a/@onclick')
print(onclick_list)
for onclick in onclick_list:
    if onclick[0:15] != "checkEvaluation":
        bro.execute_script(onclick)
        time.sleep(1)
        bro.find_element_by_class_name('layui-layer-btn0').click()
    time.sleep(1)

time.sleep(5)
bro.quit()

Python趣味爬虫之用Python实现智慧校园一键评教

6.完成效果图

Python趣味爬虫之用Python实现智慧校园一键评教

四、附录

以下为实现谷歌无头浏览器和反检测代码,供参考

from selenium import webdriver
from time import sleep
#实现无可视化界面
from selenium.webdriver.chrome.options import Options
#实现规避检测
from selenium.webdriver import ChromeOptions

#实现无可视化界面的操作
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')

#实现规避检测
option = ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])

#如何实现让selenium规避被检测到的风险
bro = webdriver.Chrome(executable_path='./chromedriver',chrome_options=chrome_options,options=option)

#无可视化界面(无头浏览器) phantomJs
bro.get('https://www.baidu.com')

print(bro.page_source)
sleep(2)
bro.quit()

到此这篇关于Python趣味挑战之用Python实现智慧校园一键评教的文章就介绍到这了,更多相关Python智慧校园一键评教内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python中日期和时间格式化输出的方法小结
Mar 19 Python
Python的Django中django-userena组件的简单使用教程
May 30 Python
Python打包可执行文件的方法详解
Sep 19 Python
详解常用查找数据结构及算法(Python实现)
Dec 09 Python
教你用Python写安卓游戏外挂
Jan 11 Python
Python wxPython库使用wx.ListBox创建列表框示例
Sep 03 Python
django框架模型层功能、组成与用法分析
Jul 30 Python
python xlwt如何设置单元格的自定义背景颜色
Sep 03 Python
在OpenCV里使用Camshift算法的实现
Nov 22 Python
Python定时任务APScheduler原理及实例解析
May 30 Python
Numpy(Pandas)删除全为零的列的方法
Sep 11 Python
Python Pytorch查询图像的特征从集合或数据库中查找图像
Apr 09 Python
Pytorch 如何加速Dataloader提升数据读取速度
在前女友婚礼上,用Python破解了现场的WIFI还把名称改成了
pytorch DataLoader的num_workers参数与设置大小详解
May 28 #Python
Flask搭建一个API服务器的步骤
May 28 #Python
Python趣味挑战之给幼儿园弟弟生成1000道算术题
May 28 #Python
解决Python中的modf()函数取小数部分不准确问题
May 28 #Python
利用Python+OpenCV三步去除水印
You might like
WIN98下Apache1.3.14+PHP4.0.4的安装
2006/10/09 PHP
给php新手谈谈我的学习心得
2007/02/25 PHP
支持php4、php5的mysql数据库操作类
2008/01/10 PHP
PHP用GD库生成高质量的缩略图片
2011/03/09 PHP
PHP制作百度词典查词采集器
2015/01/29 PHP
PHP substr()函数参数解释及用法讲解
2017/11/23 PHP
php 可变函数使用小结
2018/06/12 PHP
php转换上传word文件为PDF的方法【基于COM组件】
2019/06/10 PHP
ExtJs的Date格式字符代码
2010/12/30 Javascript
JS检测移动端横竖屏的代码
2016/05/30 Javascript
JavaScript函数节流和函数防抖之间的区别
2017/02/15 Javascript
JavaScript正则表达式简单实用实例
2017/06/23 Javascript
浅谈vue-cli 3.0.x 初体验
2018/04/11 Javascript
通过jquery.cookie.js实现记住用户名、密码登录功能
2018/06/20 jQuery
解决layui弹框失效的问题
2019/09/09 Javascript
element-ui table组件如何使用render属性的实现
2019/11/04 Javascript
python制作花瓣网美女图片爬虫
2015/10/28 Python
python中string模块各属性以及函数的用法介绍
2016/05/30 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
2018/01/10 Python
[原创]Python入门教程5. 字典基本操作【定义、运算、常用函数】
2018/11/01 Python
基于Python实现迪杰斯特拉和弗洛伊德算法
2020/05/27 Python
如何通过Python实现标签云算法
2019/07/02 Python
使用django的ORM框架按月统计近一年内的数据方法
2019/07/18 Python
Python3 assert断言实现原理解析
2020/03/02 Python
5款实用的python 工具推荐
2020/10/13 Python
微软台湾官方网站:Microsoft台湾
2018/08/15 全球购物
介绍一下JMS编程步骤
2015/09/22 面试题
《满井游记》教学反思
2014/02/26 职场文书
超市理货员岗位职责
2014/07/04 职场文书
航海技术专业毕业生推荐信
2014/07/09 职场文书
乡镇个人对照检查材料
2014/08/22 职场文书
2014年中职班主任工作总结
2014/12/16 职场文书
2016年中秋祝酒词
2015/11/26 职场文书
慰问信(范文3篇)
2019/10/23 职场文书
一文搞懂redux在react中的初步用法
2021/06/09 Javascript
浅谈MySQL之select优化方案
2021/08/07 MySQL