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的三目运算符和not in运算符使用示例
Mar 03 Python
Python迭代器和生成器定义与用法示例
Feb 10 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
Apr 17 Python
详解Python字典小结
Oct 20 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
Oct 29 Python
Python常见数据结构之栈与队列用法示例
Jan 14 Python
Python设计模式之外观模式实例详解
Jan 17 Python
快速排序的四种python实现(推荐)
Apr 03 Python
Python实现数据结构线性链表(单链表)算法示例
May 04 Python
如何在python中实现随机选择
Nov 02 Python
学生如何注册Pycharm专业版以及pycharm的安装
Sep 24 Python
PyCharm 安装与使用配置教程(windows,mac通用)
May 12 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
关于js和php对url编码的处理方法
2014/03/04 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
2017/02/23 PHP
laravel框架模型、视图与控制器简单操作示例
2019/10/10 PHP
addEventListener()第三个参数useCapture (Boolean)详细解析
2013/11/07 Javascript
简介JavaScript中setUTCSeconds()方法的使用
2015/06/12 Javascript
jquery easyui datagrid实现增加,修改,删除方法总结
2016/05/25 Javascript
JavaScript程序中实现继承特性的方式总结
2016/06/24 Javascript
js模态对话框使用方法详解
2017/02/16 Javascript
jQuery实现 RadioButton做必选校验功能
2017/06/15 jQuery
JS作用域链详解
2017/06/26 Javascript
基于Cookie常用操作以及属性介绍
2017/09/07 Javascript
vue项目开发中setTimeout等定时器的管理问题
2018/09/13 Javascript
微信小程序自定义纯净模态框(弹出框)的实例代码
2020/03/09 Javascript
javascript中正则表达式语法详解
2020/08/07 Javascript
[46:53]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
wxpython 学习笔记 第一天
2009/02/09 Python
python基于urllib实现按照百度音乐分类下载mp3的方法
2015/05/25 Python
python记录程序运行时间的三种方法
2017/07/14 Python
python3第三方爬虫库BeautifulSoup4安装教程
2018/06/19 Python
Python2实现的图片文本识别功能详解
2018/07/11 Python
如何用Python实现简单的Markdown转换器
2018/07/16 Python
浅谈django url请求与数据库连接池的共享问题
2019/08/29 Python
python匿名函数的使用方法解析
2019/10/10 Python
python如何求100以内的素数
2020/05/27 Python
python向企业微信发送文字和图片消息的示例
2020/09/28 Python
Django用内置方法实现简单搜索功能的方法
2020/12/18 Python
Python修改DBF文件指定列
2020/12/19 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
2021/01/27 Python
End Clothing美国站:英国男士潮牌商城
2018/04/20 全球购物
澳大利亚有机化妆品网上商店:The Well Store
2020/02/20 全球购物
eharmony澳大利亚:网上约会服务
2020/02/29 全球购物
群众路线剖析材料
2014/02/02 职场文书
大学军训感言600字
2014/02/25 职场文书
调解协议书
2014/04/16 职场文书
身份证丢失证明
2015/06/19 职场文书
linux下安装redis图文详细步骤
2021/12/04 Redis