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解析文件示例
Jan 23 Python
Python删除指定目录下过期文件的2个脚本分享
Apr 10 Python
深入解析Python中的list列表及其切片和迭代操作
Mar 13 Python
Python中使用插入排序算法的简单分析与代码示例
May 04 Python
python 文件操作api(文件操作函数)
Aug 28 Python
python实现换位加密算法的示例
Oct 14 Python
python 高效去重复 支持GB级别大文件的示例代码
Nov 08 Python
python3正则提取字符串里的中文实例
Jan 31 Python
python config文件的读写操作示例
Sep 27 Python
python 采用paramiko 远程执行命令及报错解决
Oct 21 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
Mar 12 Python
Matplotlib 绘制饼图解决文字重叠的方法
Jul 24 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
php 8小时时间差的解决方法小结
2009/12/22 PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
2016/03/16 PHP
一个实用的php验证码类
2017/07/06 PHP
通过修改referer下载文件的方法
2008/05/11 Javascript
Javascript在IE和FireFox中的不同表现简析
2012/12/03 Javascript
jQuery中:checkbox选择器用法实例
2015/01/03 Javascript
JS 实现计算器详解及实例代码(一)
2017/01/08 Javascript
jQuery导航条固定定位效果实例代码
2017/05/26 jQuery
基于vue-ssr服务端渲染入门详解
2018/01/08 Javascript
JS实现简易计算器
2020/02/14 Javascript
pycharm 使用心得(四)显示行号
2014/06/05 Python
Python的IDEL增加清屏功能实例
2017/06/19 Python
Python实现自动上京东抢手机
2018/02/06 Python
Python异常处理操作实例详解
2018/05/10 Python
python 读写excel文件操作示例【附源码下载】
2019/06/19 Python
详解python uiautomator2 watcher的使用方法
2019/09/09 Python
Python collections中的双向队列deque简单介绍详解
2019/11/04 Python
python装饰器原理与用法深入详解
2019/12/19 Python
简单了解python字符串前面加r,u的含义
2019/12/26 Python
pycharm 设置项目的根目录教程
2020/02/12 Python
在PyCharm中遇到pip安装 失败问题及解决方案(pip失效时的解决方案)
2020/03/10 Python
如何使用python记录室友的抖音在线时间
2020/06/29 Python
PyTorch实现重写/改写Dataset并载入Dataloader
2020/07/14 Python
Python json格式化打印实现过程解析
2020/07/21 Python
Python操作Word批量生成合同的实现示例
2020/08/28 Python
python 解决pycharm运行py文件只有unittest选项的问题
2020/09/01 Python
PyCharm设置注释字体颜色以及是否倾斜的操作
2020/09/16 Python
阿迪达斯新加坡官方网站:adidas新加坡
2019/12/06 全球购物
怎样在 Applet 中建立自己的菜单(MenuBar/Menu)?
2012/06/20 面试题
自我评价优秀范文分享
2013/11/30 职场文书
2015年评职称工作总结范文
2015/04/20 职场文书
民事二审代理词
2015/05/25 职场文书
HTML速写之Emmet语法规则的实现
2021/04/07 HTML / CSS
Redis如何使用乐观锁(CAS)保证数据一致性
2022/03/25 Redis
Python matplotlib 利用随机函数生成变化图形
2022/04/26 Python
详解Vue3使用axios的配置教程
2022/04/29 Vue.js