精华内容
下载资源
问答
  • 爬取学校通知,并将内容每天定时发送到邮箱。 思路 爬取学校通知 将通知储存进数据库 读取数据库中的通知 发送邮件 方法 爬取学校教务部通知 需要导入requests模块和bs4模块的BeautifulSoup类 import ...

    目的

    • 爬取学校通知,并将内容每天定时发送到邮箱。

    思路

    1. 爬取学校通知
    2. 将通知储存进数据库
    3. 读取数据库中的通知
    4. 发送邮件

    方法

    1. 爬取学校教务部通知

    需要导入requests模块和bs4模块的BeautifulSoup类。

    import requests
    from bs4 import BeautifulSoup
    
    # 解析教务部网址内容
    url = 'http://jwb.bnu.edu.cn/tag/%E9%80%9A%E7%9F%A5%E5%85%AC%E5%91%8A'
    page_text = requests.get(url).text
    soup = BeautifulSoup(page_text, 'lxml')
    # 获取通知列表
    list = soup.find('ul', style='min-eight:400px;').find_all('li')
    newslist = []
    for news in list:
    	con = news.text.split('\n')
        content = content[1].split('】')[1]  # 通知内容
        time = content[2]  # 通知发布时间
        newslist.append([con, time])
    

    由于通知发布的时间有点混乱,采用冒泡排序法来进行排序。

    # 冒泡排序
    def bubbleSort(arr):
        for i in range(len(arr)):
            for j in range(0, len(arr) - i - 1):
            	# 升序排序
                if arr[j][1] > arr[j + 1][1]:
                    arr[j], arr[j + 1] = arr[j + 1], arr[j]
    
    1. 将爬取的通知存入数据库

    这里使用的数据库是Python SQLITE数据库,需要导入sqlite3模块。

    import sqlite3
    
    # 连接数据库,返回连接对象
    conn = sqlite3.connect('NEWS.db')
    # 创建教务部通知表,并添加ID、HEADLINE、TIME字段
    conn.execute("""create table if not exists JWB_NEWS (
        ID integer primary key autoincrement,
        HEADLINE text,
        TIME text)""")
    # 创建游标cursor
    cursor = conn.cursor()
    # 插入数据
    for news in newslist:
    	# 查询数据是否存在
        cursor.execute("select * from JWB_NEWS where HEADLINE='" + news[0] + "'")
        # 若数据不存在则插入数据
        if len(cursor.fetchall()) == 0:
    		# 插入一条数据
    		conn.execute("insert into JWB_NEWS (HEADLINE,TIME) values (?,?)", (news[0], news[1]))
    # 数据提交
    conn.commit()
    # 关闭游标和数据库
    cursor.close()
    conn.close()
    
    1. 读取数据库中的内容,获取最近5天的通知

    需要导入sqlite3和datetime模块。

    import sqlite3
    import datetime
    
    # 获取5天前日期
    past = (datetime.datetime.now() - datetime.timedelta(days=5)).strftime("%Y-%m-%d")
    # 连接数据库,返回连接对象
    conn = sqlite3.connect('NEWS.db')
    # 创建游标cursor
    cursor = conn.cursor()
    # 查询并获取最近5天的教务部通知
    jwbnews = []
    cursor.execute("select * from JWB_NEWS where TIME>'" + past + "'" + 'order by ID desc')
    for row in cursor.fetchall():
    	jwbnews.append(row[1])
    # 关闭游标和数据库
    cursor.close()
    conn.close()
    
    1. 发送通知到邮箱

    首先需要打开邮箱的SMTP服务,本人使用的是QQ邮箱,过程如下:

    在这里插入图片描述
    在这里插入图片描述

    需要导入smtplib模块和email.mime.text模块的MIMEText类。

    import smtplib
    from email.mime.text import MIMEText
    
    # 账户信息
    sender = '×××××××××@qq.com'  # 发件人邮箱
    passward = '××××××××××××××××'  # 邮箱授权码
    user = '×××××××××@qq.com'  # 收件人邮箱
    # 邮件信息
    msg = MIMEText(content, 'plain', 'utf-8')  # 邮件内容,文本类型为plain,编码为utf-8
    msg['From'] = sender  # 发件方
    msg['To'] = user  # 收件方
    msg['Subject'] = "每日通知"  # 标题
    # 登陆邮箱
    server = smtplib.SMTP_SSL("smtp.qq.com", 465)  # 发送域名,端口465
    server.login(sender, passward)
    # 发送邮件
    server.sendmail(sender, [user], msg.as_string())
    # 关闭连接
    server.quit()
    
    1. 设置定时发送

    这里使用的是Python轻量级定时任务调度的库:schedule。

    import schedule
    
    # 每天早上7:30发送最近5天的通知到邮箱
    schedule.every().day.at("07:30").do(getFiveDaysNews)
    

    可以将项目挂载在云服务器上,让它持续运行。

    最后

    • 内容仅供大家学习参考,若有不足之处,敬请大家批评指正!
    展开全文
  • 而方法二可以实时获取当天的年月日,与网站内通告的日期比对,相等则一定是最新消息,爬到一条后就把它添加到一个“已抓取”列表中,再次抓取的时候先判断通知的链接是否在列表内,在则是当日已抓取信息;...

    写在前面

    这个不困难,用到两个库。

    1. requests库,用来发起get请求获得目标HTML。
    2. bs4,用来解析HTML获取想要的信息。

    两个库都是第三方的,所以需要对应下载。可以直接命令行使用pip

    pip install requests
    pip install bs4
    

    如果用的pycharm,也可以直接点击左上角"File",“Settings”,然后找到左侧红框点击,点击右侧“+”。然后在弹出的窗口中输入要下载的库。
    在这里插入图片描述

    分析HTML

    注:这一部分是一些“废话”!!看代码直接到最下面去
    首先,在浏览器内打开控制台查看页面元素,找到你想要提取的内容。如下图,在无数次展开标签后,终于找到通知公告这个表单了。
    在这里插入图片描述

    下图是第二条消息的table:
    在这里插入图片描述
    分析一下:我的目的是得到消息标题以及对应链接,然后把标题和链接推送出去。做法有很多种:

    1. 直接找到上图中第三行的id"line_u3_1"就可以定位到这个tr标签,然后".td.a.get(“href”)“拿到链接,”.td.a.text"拿到标题
    2. 通过string=“2019-11-06"定位到截图中间部位的span标签,然后”.parent.parent.td.a.get(“href”)“拿到链接,”.parent.parent.td.a.text"拿到标题
    3. 等等

    然而,这里面其实涉及到一个很简单的算法问题,可以想象一下:“通过脚本不断的定时访问,我要如何拿到一个网站的最新消息?”如果是一直拿取最上面一条,与前一次拿取的最上面一条比对,不等则是最新消息。但是如果网站置顶一条或多条消息,那么这一方法就失效了。所以,从根本上,这种方法是不可靠的,它不能保证爬取的消息是最新的。
    而方法二可以实时获取当天的年月日,与网站内通告的日期比对,相等则一定是最新消息,爬到一条后就把它添加到一个“已抓取”列表中,再次抓取的时候先判断通知的链接是否在列表内,在则是当日已抓取信息;不在内则是当日新信息。

    代码

    给出一个较为简单的爬虫示例,最开始在网上查资料时,各种大堆代码看起来很烦。
    直接能用的:功能是打印出学院2019-11-06的所用通知的标题和链接(链接还没做处理)

    import requests
    from bs4 import BeautifulSoup
    
    url = 'http://www.auto.shu.edu.cn/synr/tzgg.htm'
    # 模拟浏览器发送HTTP请求
    header = {'User-Agent': 'Mozilla/5.0'}
    try:
        response = requests.get(url, headers=header)
        response.raise_for_status()
        # 设置编码
        response.encoding = response.apparent_encoding
        html = response.text
        soup = BeautifulSoup(html, "html.parser")
        target = soup.find_all("span", string="2019-11-06")
        # target为列表
        for eachOne in target:
            each_text = eachOne.parent.parent.td.a.text
            each_href = eachOne.parent.parent.td.a.get("href")
            print(each_text)
            print(each_href)
    except:
        print("爬取失败")
    #######################输出结果如下
    第五届中国智能仪器仪表设计大赛/参赛邀请函
    ../info/1123/7805.htm
    

    更多的bs4的HTML解析方法当然还是得看官方文档,中文的,自己做些小脚本可以参照。
    Beautiful Soup 4.4.0 文档

    后续的消息推送

    其实最初的目的就是每次去刷公告很烦,所以想爬取各种通知公告,然后推送到QQ上。结果webQQ停止维护了,所以就打算搞个微信机器人给自己推送通知公告。
    博客地址:wepy微信机器人:向好友推送爬取的公告

    展开全文
  • 华中科技大学,目前通知的是16级五月份分批回学校拿毕业资料,17级不返校了 卓大大,我是武汉的一名学生,今天我们学院通知这学期不返校了,这对于我们影响非常大,不能返校意味着没有设备和场地来调试和制作智能...

    返校

    卓老师,我是武汉的,学校已经明确这学期不返校了,暑假估计也不会让进,那我们大三岂不是真的凉了?!华中科技大学,目前通知的是16级五月份分批回学校拿毕业资料,17级不返校了,老师目前说的是,暑假也不许返校,不知道会不会变?

    卓大大,我是武汉的一名学生,今天我们学院通知这学期不返校了,这对于我们影响非常大,不能返校意味着没有设备和场地来调试和制作智能车,我想问一下赛事组委会能考虑一下我们的情况给出方案吗?

    卓老师,请问暑假还有希望吗

    卓大大 我们太难了。。老师说我们即便到学校后也要封闭式管理,不允许参加任何除上课教学以外的活动做车是要受限的啊啊

    ▲ 禁止大型聚集性活动

    ▲ 禁止大型聚集性活动

    回复:谢谢你们反馈的高校开学返校信息。竞赛组委会也将密切关注全国各地区高校开学返校信息,并对今年竞赛内容和进程安排做相应的调整。

     

    信标组

    卓大,现在有一种有劲用不出的感觉。拿旧板子飞线,tc264控制h车的代码写完了测试完了,264主板的原理图和封装也画好了。新驱动板也做好了。互相关,fft,麦克风数据处理什么的也都做了,但是进度卡住了:
    (1)fft在单片机上跑的很慢是一个问题,单片机空间不够是第二个问题(每个点包含1个实部和1个虚部,就算不用double用float,好几个2048,4096长度的结构体数组也编译内存溢出—插值就更溢出了)。
    (2)因为openmv不知道能不能用,主板暂时没法继续布线;
    (3)信标灯也不知道什么时候能买到…每天都在怀疑自己做不出来,低效率的干着这些事情,很焦虑,也影响了学习和复习。
    所以恳请卓大关于fft的单片机实现方面能不能有进一步的指导,或者关于openmv和信标灯有什么最新消息…或者有什么开导性的建议…

    ▲ 挂满飞线的电路板

    ▲ 挂满飞线的电路板

    卓老师您好,我用TC264做fft的时候,遇到了一个问题。在数组长度为512的时候可以顺利计算,但是数组长度没2048时,调试的时候会有这种问题。询问了别的同学也有这样的问题,可以联系一下官方说明一下解决的办法吗,因为涉及到了汇编的部分,很难解决。

    回复
    (1)关于声音信标中FFT计算延迟算法,我们将会和Infineon公司技术人员一起讨论,给出快速计算的参考方案;
    (2)信标组是否允许使用OpenMV(NXP)模块,作为视觉传感器用于信标避障,将会在竞赛规则补充说明统一给出说明。由于今年的信标外形呈现扁平圆锥形,使用超声、激光距离传感器完成避障具有一定的风险,因此组委会将会在本组放开OpenMV(NXP)模块的使用。
    (3)可以用于信标调试的电路模块经过三个版本的调试改动,明天,不, 应该 说是今天上午就应送到我的手中进行最终测试验证了。不久大家便可以获得该信号板了。
    ▲ 信标灯的信号板

    ▲ 信标灯的信号板

    其他问题

    老师请问RDA5807左右声道是直接接到单片机ADC口上还是中间要夹个电容再接到ADC口上呢?

    回复: 实际上这需要考虑到信号在进行AD转换的时候直流分量的问题。施加在单片机AD输入口的信号电压范围一般应该是从0V到单片机的参考电压之间。所以中间使用电容进行信号耦,则可以将RDA5807 的交流分量送到ADC口,但需要在ADC口上重新恢复出一个电压中点的直流电平。 一般是通过两个分压电阻来完成。

    卓大大,在家的话有没有生成一个可供测试的信标FM信号的方法啊

    回复: :如果只是使用普通的音箱来播放Chirp声音信号,可以在下面百度网盘下载:
    正确WAVE文件格式的Chirp声音文件下载地址:
    链接:
    https://pan.baidu.com/s/19qLZbABSISm8q2gA2V6Afw
    提取码: wrk2

    如果希望产生调频广播无线电限号,在之前的推文介绍了使用QN8027完成调频信号发送,这需要通过自制电路板来完成。也可以在淘宝上购买到便宜的调频发射极模块外辅助实验。不过再过一个礼拜,前面所示的信标灯的信号板便可以获得了。

    卓老师,双车在比赛的时候允许球在中途掉落吗?就是我想两车相遇以后,我把球扔下去,再让另一辆车捡起来继续走。

    回复: 你所提到的传球方案应该不太符合竞赛规则所要求。所以还是要求在双车传球过程中,球不应该着地。

    展开全文
  • 项目背景:因为有时候要关注一些官网上的通知,比如政府网站、学校网站等等,这些通知往往具有时效性,而我们也不能保证每天都能去上网看,所以使用python做了这个小任务,每天定时爬取学校官网的通知,并发送到邮箱...

    项目背景:因为有时候要关注一些官网上的通知,比如政府网站、学校网站等等,这些通知往往具有时效性,而我们也不能保证每天都能去上网看,所以使用python做了这个小任务,每天定时爬取学校官网的通知,并发送到邮箱。
    这个小任务主要包括三部分:

    1. 数据爬取
    2. 邮件发送
    3. 定时执行

    1、数据爬取

    在这里插入图片描述
    这里我使用requests+beautifulsoup来进行数据抓取。
    首先抓取文章列表页的url,返回一个list:

    def get_url():
        url = 'http://www.bzuu.edu.cn/jxjy/125/list.htm'
        r = requests.get(url=url)
        soup = BeautifulSoup(r.text, 'lxml')
        links = soup.find_all('td', width="97%")
        main_url = 'http://www.bzuu.edu.cn'
        url_list = []
        for link in links:
            a = link.a['href']
            if a.endswith('htm'):
                url_list.append(main_url+a)
        return url_list
    

    接着获取文章发布时间和标题:
    在这里插入图片描述

    def get_content():
        title_list = []
        for url in get_url():
            r = requests.get(url=url)
            r.encoding = 'utf-8'
            soup = BeautifulSoup(r.text, 'lxml')
            title = soup.find('span', class_="Article_Title").text
            pub_data = soup.find('span', class_="Article_PublishDate").text
            current_time = time.strftime('%Y-%m-%d', time.localtime(time.time()))
            if pub_data == current_time:
                title_list.append(pub_data + " ; 今日公告:" + title + ";" + "详情点击: " + url)
        if len(title_list) == 0:
            sent_email(mail_body='今天没有通知')
        else:
            for title in title_list:
                sent_email(mail_body=title)
        title_list.clear()
    

    这里有几个需要注意的点,就是关于中文乱码问题,通过request获取到的网页信息,部分中文会出现乱码情况,为此需要做一次操作:

    r.encoding = 'utf-8'
    

    2、邮件发送

    这里需要用到几个库:

    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header
    

    具体代码:

    def sent_email(mail_body):
        sender = '***********'
        receiver = '**********'
        smtpServer = 'smtp.163.com'
        username = '*******'
        password = '*******'
        mail_title = '今日通知'
        mail_body = mail_body
    
        message = MIMEText(mail_body, 'plain', 'utf-8')
        message["Accept-Language"] = "zh-CN"
        message["Accept-Charset"] = "ISO-8859-1,utf-8"
        message['From'] = sender
        message['To'] = receiver
        message['Subject'] = Header(mail_title, 'utf-8')
    
        try:
            smtp = smtplib.SMTP()
            smtp.connect(smtpServer)
            smtp.login(username, password)
            smtp.sendmail(sender, receiver, message.as_string())
            print('邮件发送成功')
            smtp.quit()
        except smtplib.SMTPException:
            print("邮件发送失败!!!")
    

    其中包括sender发送方,receiver接收方,需要特别注意的是,username是你的邮箱账号,但password不是你的邮箱密码,而是你的smtp授权密码,如果发送的正文当中出现乱码情况,需要做一步操作:

        message["Accept-Language"] = "zh-CN"
        message["Accept-Charset"] = "ISO-8859-1,utf-8"
    

    3、定时执行

    这里需要用到windows的计划任务功能:
    在这里插入图片描述
    在这里插入图片描述
    接下来几步操作没什么可说的,最重要的一步是:
    在这里插入图片描述
    第一个输入框输入:python.exe
    添加参数输入脚本的完整路径
    起始于输入python.exe的解释器路径;
    需要注意的一点是:要看清设置选项,有的设置选项是必须插入电源才能按时执行,这个要勾选掉,否则可能会出现执行不成功的情况。

    展开全文
  • 广东省关于企业复工和学校开学时间的通知,以下为全文: 广东省人民政府关于企业复工和学校开学时间的通知 各地级以上市人民政府,各县(市、区)人民政府,省政府各部门、各直属机构:  为加强新型冠状病毒...
  • 4【学校教学系统】获取所有通知

    万次阅读 2015-11-26 13:50:35
    这篇博客我们看看如何获得通知的标题 主界面我们有一个获得通知的更多箭头。 我们在chrom下用这个东西看看点击这个按钮会发生什么事情 我们可以看到点击按钮会想一个网页发送get请求。 这个地址是/Base/...
  • 无聊拿来玩儿,仅作为练习用。 文章目录分析代码效果 分析 找到文本的所处的div即可,注意应该是文本(一般是<span>text</span>这种形式)的上一级div,即div下面应该就是文本所在的span,找到文本所在的...
  • 最近想学python语言,并没有找到合适的练手,在知乎上搜到关于抓取学校通知推送到手机并且还做了app,我就先学会了使用python进行抓取数据。由于学校的网站十分好抓取,只采用了最简单的urllib2模块进行抓取数据,在...
  • 一个有关新版正方教务管理系统(如下图展示的主页面即为... 学校通知 调课、改课消息 成绩 课程表 考试信息 自动抢课 一键评价 选课名单 实验考试 选课名单 如何开始 使用pip命令安装 pip install zf...
  • 【官万通知?】疫情返校通知?:

    万次阅读 2020-03-04 20:11:45
    入校时需佩戴口罩,学校将安排人员进行体温测量。详细通知可登录我校官网官微查看,或点击下方链接直接跳转至微信公众号进行查看。 链接:https://tts.baidu.com/text2audio?tex= &cuid=baike&lan=ZH&...
  • ROS暑期学校与ROSCon 2018

    千次阅读 2018-07-09 21:53:29
    简洁版通知: 2018机器人操作系统(ROS)暑期学校 费用:免费 时间:2018年7月21日至28日 地点:广东省深圳市丽水路2279号/清华大学深圳研究生院 暑期学校官网: http://www.roseducation.org/ 报名网址: ...
  • 最可恨的是竟然被调剂的同学事先也不通知..在此在这里发发牢骚..也请大 家理论理论..给我点意见..(最后说一声 我身边的人很多人都被调剂了)  1:找老师说一声,希望能够在调剂一下.(不大现实).  2 接受现实...
  • 因为学校邮箱不具有短信通知功能,所以若要实现短信通知功能,必须将学校邮箱关联一个具有短信通知功能的邮箱(例如163邮箱、139邮箱等)。下面将逐步说明如何设置学校邮箱的自动转发功能跟实现163邮箱以及139邮箱的...
  • 一个大学消息通知系统

    千次阅读 2018-11-04 23:23:07
    一个个人完成的不成熟的学生课程设计作品,仅供参考,Netty聊天部分主要修改自 qiqiim-server (题目源于自己一个想改善大学消息通知效率的一个想法,所有功能都是自己DIY的,也许并不可行) ...
  • 用python实现简单的网站信息更新自动通知 因为需要及时收到学校研究生网站的... 学校教务网站更新通知 新剧新番更新通知 查成绩通知 通过程序发邮件,节约登录时间 ...... 编译环境 语言:python3 开发编译器:pyc
  • 学校家长委员会谈开去

    千次阅读 2012-02-08 14:46:06
    学校家长委员会,简称家长委员会,根据百度的记录,在我国它的宗旨是:“坚持家校沟通与合作,让家长充分参与学校管理,有效体现家长对学校教育教学工作的知情权、评议权、参与权和监督权;完善学校、家庭、社会...
  • 图片来源:ROS暑期学校(中国)图片来源:ROS暑期学校(中国) https://discourse.ros.org/t/ros-summer-school-in-china-2019-july-27-august-hefei/9494 中国ROS暑期学校将迎来五周年庆典。我们已成功在上海(2015年...
  • 中国机器人操作系统(ROS)暑期学校自2015年举办以来,被ROS开源基金会誉为除了ROSCon之外的规模最大、参与人数最多、最成功的ROS线下活动。过去五年间,中国机器人操作系统(ROS)暑期学校共吸引了全国200多所高校...
  • 关于2007年河北省专接本考试的通知

    千次阅读 2007-04-26 00:44:00
    冀教学[2007]7号河北省教育厅关于做好2007年专科接本科教育选拔工作的通知各有关普通高校:依照《河北省普通高等学校专科接本科教育选拔工作暂行规定》(冀教学[2001]17号),为了做好2007年普通高校专科接本科...
  • 2021年全国大学生电子设计竞赛官方通知正式发布

    万次阅读 多人点赞 2021-01-31 14:17:12
    转载自公众号:德州仪器TI校园计划关于组织2021年全国大学生电子设计竞赛的通知(电组字〔2021〕01号)各赛区组织委员会、各有关高等学校:全国大学生电子设计竞赛(以下简称全国竞赛)组...
  • 一个三流学校程序员的奋斗

    千次阅读 2016-05-31 17:30:24
    我也在一个三流的学校,在找有关考研的文章的时候看到这篇文章 觉得不错,不敢独享,拿出来共勉……   看完后我又一次明白,勤能补拙,一个人的成功,往往在于坚持 没有挫折,不经历艰难的日子,就没有...
  • 学校平安管理系统

    千次阅读 2014-08-25 11:18:04
    学校平安管理系统   一、 项目背景:  孩子每天是否按时到校?过了放学时间还没回来,是否已经离校?天气恶劣,却不知学校是否提前放学或停课?孩子最近的成绩和在校表现怎样?离校后有没有去不该去的场所?  ...
  • 引言又到一年广大准研究生收获的季节,各位准研究生陆续收到了待录取学校通知书,为了纪念曾经感动自己的岁月,很多研究生小鲜肉在百度贴吧考研吧版块发了自己的录取通知书图片。楼主对各个学校的研究生录取通知书...
  • 今晚学校停电

    2007-06-18 22:59:00
    接到物业通知,今晚停电,23:00--0:00,又要在机房看着了,如果温度上升得太快还是要关服务器和设备,真是麻烦。:
  • 部分学校是专门公布的复试通知,部分学校的复试参考书目在招生简章或者招生目录中就已经公布了。北京01.北京工商大学http://yjs.btbu.edu.cn/zsgz/sszs/17910...
  • 在内网实现类似QQ通知窗口(发包/收包/弹出通知)

    千次阅读 热门讨论 2008-11-04 11:52:00
    偶公司是搞通信的,所以... 其他不多说了,坐席人员反映她们发通知什么的特别麻烦,每次都需要每个通知一遍,所以想让做个类似qq弹出通知的那个通知框(以前她们用的是windows的信使,不过好像经常坏掉). 领导把任务给偶了.
  • 用Python实现校园通知更新提醒

    千次阅读 2018-04-29 19:57:01
    首先说说起因吧,我没事的时候,总喜欢依次点开学校主页、教务处、图书馆以及学院的网站,看看有没有什么新通知,虽然大多与我无关。恰逢最近正在学Python,经常听到别人说用Python写爬虫很简单,但自己尚未接触过...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,483
精华内容 16,193
关键字:

学校通知