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利用beautifulSoup实现爬虫
Sep 29 Python
利用一个简单的例子窥探CPython内核的运行机制
Mar 30 Python
Python使用win32 COM实现Excel的写入与保存功能示例
May 03 Python
在pycharm 中添加运行参数的操作方法
Jan 19 Python
Python自定义函数计算给定日期是该年第几天的方法示例
May 30 Python
简单了解Pandas缺失值处理方法
Nov 16 Python
Python字典生成式、集合生成式、生成器用法实例分析
Jan 07 Python
python print 格式化输出,动态指定长度的实现
Apr 12 Python
Pycharm安装并配置jupyter notebook的实现
May 18 Python
python操作redis数据库的三种方法
Sep 10 Python
Python机器学习工具scikit-learn的使用笔记
Jan 28 Python
Python实现提取PDF简历信息并存入Excel
Apr 02 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
十大感人催泪爱情动漫 第一名至今不忍在看第二遍
2020/03/04 日漫
php中多维数组按指定value排序的实现代码
2014/08/19 PHP
Javascript里使用Dom操作Xml
2006/09/20 Javascript
文本域中换行符的替换示例
2014/03/04 Javascript
jquery中获取元素里某一特定子元素的代码
2014/12/02 Javascript
NodeJS Web应用监听sock文件实例
2015/02/18 NodeJs
jquery序列化方法实例分析
2015/06/10 Javascript
JS实现的表格操作类详解(添加,删除,排序,上移,下移)
2015/12/22 Javascript
jQuery实现的兼容性浮动层示例
2016/08/02 Javascript
bootstrap 表单验证使用方法
2017/01/11 Javascript
微信小程序 页面跳转和数据传递实例详解
2017/01/19 Javascript
详解JS中的立即执行函数
2017/02/24 Javascript
利用JS实现简单的瀑布流加载图片效果
2017/04/22 Javascript
webpack下实现动态引入文件方法
2018/02/22 Javascript
JS面向对象之多选框实现
2020/01/17 Javascript
vue 修改 data 数据问题并实时显示操作
2020/09/07 Javascript
[04:38]完美世界携手游戏风云打造 卡尔工作室饰品系统篇
2013/04/25 DOTA
python实现在windows下操作word的方法
2015/04/28 Python
python操作redis的方法
2015/07/07 Python
Django中ORM表的创建和增删改查方法示例
2017/11/15 Python
python 顺时针打印矩阵的超简洁代码
2018/11/14 Python
Laravel+Dingo/Api 自定义响应的实现
2019/02/17 Python
Python字符串的一些操作方法总结
2019/06/10 Python
Python实现代码统计工具
2019/09/19 Python
在python中修改.properties文件的操作
2020/04/08 Python
推荐10个HTML5响应式框架
2016/02/25 HTML / CSS
社区娱乐活动方案
2014/08/21 职场文书
党员四风自我剖析材料
2014/10/07 职场文书
2014法制宣传日活动总结范文
2014/11/01 职场文书
企业战略合作意向书
2015/05/08 职场文书
借条格式范本
2015/05/25 职场文书
一年级下册数学教学反思
2016/02/16 职场文书
《抽屉原理》教学反思
2016/02/20 职场文书
六年级作文之家庭作文
2019/12/12 职场文书
node快速搭建后台的实现步骤
2022/02/18 NodeJs
nginx lua 操作 mysql
2022/05/15 Servers