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 11 Python
使用python3.5仿微软记事本notepad
Jun 15 Python
python实现实时监控文件的方法
Aug 26 Python
利用Python批量压缩png方法实例(支持过滤个别文件与文件夹)
Jul 30 Python
在IPython中执行Python程序文件的示例
Nov 01 Python
一文带你了解Python中的字符串是什么
Nov 20 Python
Python3.5字符串常用操作实例详解
May 01 Python
python 缺失值处理的方法(Imputation)
Jul 02 Python
Python定时任务APScheduler的实例实例详解
Jul 22 Python
python实现通过队列完成进程间的多任务功能示例
Oct 28 Python
python函数局部变量、全局变量、递归知识点总结
Nov 15 Python
如何使用pandas读取txt文件中指定的列(有无标题)
Mar 05 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写入数据到CSV文件的方法
2015/03/14 PHP
一个简单的弹性返回顶部JS代码实现介绍
2013/06/09 Javascript
使用Js让Html中特殊字符不被转义
2013/11/05 Javascript
浅析JavaScript中的delete运算符
2013/11/30 Javascript
js取float型小数点后两位数的方法
2014/01/18 Javascript
jquery为页面增加快捷键示例
2014/01/31 Javascript
jQuery中:input选择器用法实例
2015/01/03 Javascript
javascript实现字符串反转的方法
2015/02/05 Javascript
详解Node.js中exports和module.exports的区别
2017/04/19 Javascript
ztree实现权限横向显示功能
2017/05/20 Javascript
详解webpack + vue + node 打造单页面(入门篇)
2017/09/23 Javascript
Thinkphp5微信小程序获取用户信息接口的实例详解
2017/09/26 Javascript
jQuery简单实现根据日期计算星期几的方法
2019/01/09 jQuery
express + jwt + postMan验证实现持久化登录
2019/06/05 Javascript
防止Layui form表单重复提交的实现方法
2019/09/10 Javascript
微信小程序激励式视频广告组件使用详解
2019/12/06 Javascript
js获取url页面id,也就是最后的数字文件名
2020/09/25 Javascript
Nodejs + sequelize 实现增删改查操作
2020/11/07 NodeJs
javascript实现简单留言板案例
2021/02/09 Javascript
[03:04]DOTA2英雄基础教程 影魔
2013/12/11 DOTA
Python实现从url中提取域名的几种方法
2014/09/26 Python
Python使用BeautifulSoup库解析HTML基本使用教程
2016/03/31 Python
Python读取mat文件,并转为csv文件的实例
2018/07/04 Python
python Gunicorn服务器使用方法详解
2019/07/22 Python
使用python写的opencv实时监测和解析二维码和条形码
2019/08/14 Python
详解pandas绘制矩阵散点图(scatter_matrix)的方法
2020/04/23 Python
夏尔巴人登珠峰品牌:Sherpa Adventure Gear
2018/02/08 全球购物
日本著名的服饰鞋帽综合类购物网站:MAGASEEK
2019/01/09 全球购物
常见的软件开发流程有哪些
2015/11/14 面试题
毕业生在校学习的自我评价分享
2013/10/08 职场文书
xxx同志考察材料
2014/02/07 职场文书
优秀应届毕业生推荐信
2014/02/18 职场文书
大学生新学期计划书
2014/04/28 职场文书
祝福语集锦:送给闺蜜的生日祝福语
2019/10/08 职场文书
Golang中interface{}转为数组的操作
2021/04/30 Golang
实现GO语言对数组切片去重
2022/04/20 Golang