利用selenium实时监测交大经管学院前沿讲座更新状态。

from selenium import webdriver  # 导入selenium自动化测试模块
from lxml import html  # 导入xpath解析模块
import time # 导入时间模块
etree = html.etree # 实例化etree
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
import pandas as pd
import osclass LectureReminder():"""交大讲座微信提醒"""def __init__(self,time_sleep):ch_op = Options()  # 创建一个参数对象,用来控制chrome以无界面模式打开ch_op.add_argument('--headless')  # 设置谷歌浏览器的页面无可视化ch_op.add_argument('--disable-gpu')ch_op.add_argument('blink-settings=imagesEnabled=false')  # 不加载图片, 提升速度self.ch_op=ch_opself.time_sleep=time_sleep#多少秒以后运行一次self.status=True#决定整个程序是否继续运行,如果为True则运行,如果为False则退出self.info_differences=False#新旧讲座信息是否不同。如果不同即True,将触发打开微信页面并发送消息的提示self.print_statu='无新讲座出现'#表示目前讲座更新状态,出现新讲座将更新为‘出现新讲座啦!’self.open_html()self.get_info()self.compare_info()def open_html(self):"""打开讲座网页页面"""self.browser = webdriver.Chrome(chrome_options=self.ch_op)  # 创建chrome浏览器控制器,self.browser.implicitly_wait(10)  # 隐式等待:在查找所有元素时,如果尚未被加载,则等10秒self.browser.get('http://sem.bjtu.edu.cn/')  # 浏览器控制器访问网页time.sleep(2)  # 延迟5秒def get_info(self):"""获得讲座信息"""text_s = self.browser.page_source  # 将获取的页面转化成text类型#print(text_s)  # 此时仍就是不包含信息的代码tree = etree.HTML(text_s)  # 实例化xpathli_s = tree.xpath('//li/ul[@class="activityTrailer_list clearfix"]/li')  # 进行第一次解析,获取# 将讲座信息提取出来self.info_s = []for li in li_s:try:# li=li_s[2]try:year = li.xpath('div[@class="activityTrailer_time"]//text()')[0]  # 年份except:year = ''try:try:date = li.xpath('div[@class="activityTrailer_date "]//text()')[0]  # 日期except:date = li.xpath('div[@class="activityTrailer_date date_out"]//text()')[0]  # 日期except:date = ''try:name = li.xpath('div/a[@target="_blank"]//text()')[0]  # 名称except:name = ''try:time = li.xpath('div/div[@class ="a_clock"]//text()')[0]  # 时分except:time = ''try:location = li.xpath('div/div[@class="a_place"]//text()')[0]  # 地点except:location = ''info = [year, date, name, time, location]self.info_s.append(info)except:continueself.info_s=self.info_s[:5]self.browser.quit()def reopen_html(self):"""重新打开网页"""self.open_html()self.get_info()def compare_info(self):"""经过固定时间(秒),将新旧讲座信息对比,如果不同,则做出反映"""while True:self.info_s_old=self.info_s#先将旧信息另外赋值用于比对time.sleep(self.time_sleep)self.reopen_html()if self.info_s_old[0]!=self.info_s[0]:self.send_message()else:print('目前讲座是:\n')self.show_info()print(self.print_statu)print(time.ctime(time.time()))def send_message(self):"""当新旧信息不同时,将触发此函数,向微信发送消息"""self.show_info()self.print_statu='新讲座出现啦'def show_info(self):"""将获取的信息打印出来"""for info in self.info_s:info_text=info[0]+info[1]+info[2]+info[3]print(info_text)if __name__=='__main__':lecture=LectureReminder(1800)

利用selenium实时监测交大经管学院前沿讲座更新状态_20200527_相关推荐

  1. 利用mail实时监测服务器程序状态

    为什么80%的码农都做不了架构师?>>>    1 mail环境搭建 1.1 安装mail套件 ubuntu环境:apt-get install mutt msmtp centos环 ...

  2. linux查看邮件服务状态,利用mail实时监测服务器程序状态

    1 mail环境搭建 1.1 安装mail套件 ubuntu环境:apt-get install mutt msmtp centos环境:我没有采用mutt,是用的sendmail或mail中的一种, ...

  3. 利用selenium携带cookies实现免登录

    前面爬虫系列我在介绍中谈到过Javascript进行渲染的界面,普通的请求是无法获取关键代码块的. selenium确实是个神器,但是越来越多的网站也对selenium进行了识别和通过登录方式进行了限 ...

  4. 如何实时监测配电室环境?给你支一招

    配电房作为日常可见的供电基础设施,存在于我们身边,可以为人们日常正常所需用电提供保障.但是配电房内存在诸多的不安全环境因素,其内易发生设备受损而致电力系统瘫痪. 配电房存在3大隐患 01.人工定期巡检 ...

  5. 国际经管学院举办计量经济学术前沿研讨会

    6月10日,由首都经济贸易大学国际经济管理学院组织的"计量经济学术前沿研讨会"在博远楼三号报告厅举办.此次研讨会汇集海内外知名学者,校长付志峰出席活动并致辞. 付志峰在致辞向远道而 ...

  6. 深度学习(二)——从零自己制作数据集到利用deepNN实现夸张人脸表情的实时监测(tensorflow实现)

    一.背景介绍 这篇文章主要参考我的上一篇文章:深度学习(一)--deepNN模型实现摄像头实时识别人脸表情(C++和python3.6混合编程).由于上一篇文章的模型所采用的数据集为fer2013,前 ...

  7. 基于改进YOLOv7&OpenCV的行人过马路速度与交通灯实时监测系统(源码&教程)

    1.研究背景 横穿马路的行人运动速度太快.太慢或者突变都可能影响驾驶者的判断,从而导致交通事故.车载辅助系统应能够在交通路口为驾驶者提供异常行人的速度预判信息.文献[1-2]通过对不同红绿灯情形进行建 ...

  8. [激光原理与应用-51]:《激光焊接质量实时监测系统研究》-2-激光焊接及其物理现象

    目录 2.1 激光焊接过程概述 2.1.1 激光焊接的特点 2.1.2 焊接质量的影响因素 2.1.3 激光焊接热源模型 2.1.4 激光焊接技术的发展前景与面临的挑战 2.2 激光焊接中的小孔效应及 ...

  9. 李彦宏清华经管学院演讲:11年创业心路历程与人生感悟

    李彦宏清华经管学院演讲:11年创业心路历程与人生感悟 浏览次数: 425次 2011年10月22日 腾讯科技 字号: 大 中 小 分享到: QQ空间 新浪微博 腾讯微博 人人网 豆瓣网 开心网 更多 ...

  10. 幼儿园实时监测控制系统的设计

    word完整版可点击如下下载>>>>>>>> 幼儿园实时监测控制系统的设计-硬件开发文档类资源-CSDN下载内容包括详细设计文档word版,附带开题报告 ...

最新文章

  1. 使用ThinkPHP过程中发现的一些坑
  2. 为什么我的DevOps落地过程跟别人不一样?
  3. IT市场10大技术伟人 Linux之父居首(转)
  4. 移动通信网络频段大全,含5G、4G,各种公开频段汇总
  5. 程序员的“认知失调”
  6. UOJ【UR #12】实验室外的攻防战
  7. 随机生成mysql测试表大量数据
  8. 时间序列预测 时间因果建模_时间序列建模以预测投资基金的回报
  9. combo空间禁止手动输入_国产大空间MPV新选择 上汽大通新款G10国六版本上市
  10. 微信小程序 全套 视频 9ph7 教程 全部免费 百度网盘
  11. 如何接受上级指令_职场老手教你怎么应对领导错误的指令,千万要注意这几点...
  12. 编程篇(002)-js实现一个打点计时器
  13. 无线测温采集设备及无线测温监控系统的选型指导-安科瑞王婧
  14. DDD之实体与值对象区别
  15. 浏览器调起app应用方法
  16. Python实例1—打印购物小票
  17. Ubuntu root密码忘记了怎么重置密码
  18. C语言中的多线程简介
  19. 圣诞节诗歌-最美的礼物—赞美之泉
  20. Zadoff-Chu 序列

热门文章

  1. 英语口语收集(二十五)
  2. 0002深度学习初体验-基于Tensorflow and Keras 实现卷积神经网络(CNN-AlexNET)实现CIFAR图像训练
  3. linux终端文件名前特殊符号,Linux特殊符号大全
  4. windows mingw 64,SDL ,devil,glfw,opengl,qt环境搭建
  5. X线、CT、B超、核磁共振区别
  6. 两个程序的爱情故事(刘欣)
  7. 使用jquery处理多选框checkbox选中和未选中的值
  8. 2018招商银行笔试题——团建活动
  9. 点餐系统——数据库设计
  10. php访问80端口强制跳转443,nginx 80端口重定向到443端口