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 字典dict使用介绍
Nov 30 Python
Python3.x中自定义比较函数
Apr 24 Python
python实现的用于搜索文件并进行内容替换的类实例
Jun 28 Python
python实现简单购物商城
May 21 Python
Python求出0~100以内的所有素数
Jan 23 Python
Python企业编码生成系统之系统主要函数设计详解
Jul 26 Python
python打印直角三角形与等腰三角形实例代码
Oct 20 Python
Python使用ElementTree美化XML格式的操作
Mar 06 Python
django自带的权限管理Permission用法说明
May 13 Python
python中tkinter窗口位置\坐标\大小等实现示例
Jul 09 Python
Django vue前后端分离整合过程解析
Nov 20 Python
Python实现一个论文下载器的过程
Jan 18 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
ADODB的数据库封包程序库
2006/12/31 PHP
PHP与MongoDB简介|安全|M+PHP应用实例详解
2013/06/17 PHP
php可应用于面包屑导航的递归寻找家谱树实现方法
2015/02/02 PHP
PHP版微信公众平台红包API
2015/04/02 PHP
Extjs学习笔记之二 初识Extjs之Form
2010/01/07 Javascript
使用js正则控制input标签只允许输入的值
2013/07/29 Javascript
JS显示下拉列表框内全部元素的方法
2015/03/31 Javascript
javascript实现3D变换的立体圆圈实例
2015/08/06 Javascript
基于jQuery实现仿搜狐辩论投票动画代码(附源码下载)
2016/02/18 Javascript
把普通对象转换成json格式的对象的简单实例
2016/07/04 Javascript
基于javascript的Form表单验证
2016/12/29 Javascript
浅谈Vue2.0中v-for迭代语法的变化(key、index)
2018/03/06 Javascript
js数组去重的N种方法(小结)
2018/06/07 Javascript
vue异步加载高德地图的实现
2018/06/19 Javascript
js中let能否完全替代IIFE
2019/06/15 Javascript
Python实现按逗号分隔列表的方法
2018/10/23 Python
python实现图片识别汽车功能
2018/11/30 Python
提升Python效率之使用循环机制代替递归函数
2019/07/23 Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
2020/02/16 Python
Python双链表原理与实现方法详解
2020/02/22 Python
信号生成及DFT的python实现方式
2020/02/25 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
2020/03/06 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
Python 数据分析之逐块读取文本的实现
2020/12/14 Python
使用Python快速打开一个百万行级别的超大Excel文件的方法
2021/03/02 Python
CSS3 transform的skew属性值图文详解
2014/07/21 HTML / CSS
利用纯css3实现的文字亮光特效的代码演示
2014/11/27 HTML / CSS
BASIC HOUSE官方旗舰店:韩国著名的服装品牌
2018/09/27 全球购物
女大学生毕业找工作的自我评价
2013/10/03 职场文书
教师旷工检讨书
2014/01/18 职场文书
综合素质评价个性与发展自我评价
2015/03/06 职场文书
物业接待员岗位职责
2015/04/15 职场文书
导游词之无锡古运河
2019/11/14 职场文书
导游词之藏龙百瀑景区
2019/12/30 职场文书
Java虚拟机内存结构及编码实战分享
2022/04/07 Java/Android
Go语言怎么使用变长参数函数
2022/07/15 Golang