zoukankan      html  css  js  c++  java
  • BeautifulSoup 一行代码获取今日日期,与smtplib结合

    在中有一节为通过网络获取今天是不是圣诞节,但是我今天写的时候那个网站登录奇慢,本着求人不如求己,能国内绝不国外的原则,我决定还是自己找个网站爬取日期.

    比如
    分析网站获取日期
    再简单的看了看该网站的代码之后,我最终选择了获取黄色荧光笔标出的那个a标签内容
    当然,你也可以获取图中的整个日历内容(蓝色圈部分),通过这种方式,你讲拥有一个完整的”在线日期库”

    简单的东西还是直接代码:

    from urllib.request import urlopen
    from bs4 import BeautifulSoup
    import re
    
    print((BeautifulSoup(urlopen("http://www.baibaidu.com/"),'lxml').find('h3').find('a')).text)

    好吧似乎有点太简单了=- =只有一行
    那再来一遍,顺便再做点处理

    html = urlopen("http://www.baibaidu.com/")
    bsObj = BeautifulSoup(html,'lxml')
    data= (bsObj.find('h3').find('a')).text
    print(data)
    # 获取数字形式的字符串
    numData = re.sub(r'D', "", str2)
    print(numData)

    然后还可以之前写的发送邮件,可以在一起做点不同的事情,比如通过对获取的信息进行一定的出来再将一些内容发送的邮箱,可以是群发(最好是通过打开存储邮箱信息的文件的形式),也可以是单独发送.如果你是用本机或者服务器按时启动这个脚本进行检查,我们将获得一个很酷的小工具.

    代码如下

    # - * - coding: utf - 8 -*-
    #
    # 作者:田丰
    # 邮箱:fonttian@163.com
    # 撰写时间:2017年4月22日
    # Python版本:3.6.1
    # CSDN:http://blog.csdn.net/fontthrone
    #
    from urllib.request import urlopen
    from bs4 import BeautifulSoup
    import re
    import smtplib
    import email.mime.multipart
    import email.mime.text
    
    msg = email.mime.multipart.MIMEMultipart()
    msgFrom = 'fonttian@163.com'
    msgTo = 'marktian1986@163.com'
    smtpSever='smtp.163.com'
    smtpPort = '25'
    sqm='将这里替换为你的授权码'  # 在登录smtp时需要login中的密码应当使用授权码而非账户密码
    
    # 获取日期信息
    html = urlopen("http://www.baibaidu.com/")
    bsObj = BeautifulSoup(html,'lxml')
    data= (bsObj.find('h3').find('a')).text
    dataNumber = re.sub(r'D', "", data)
    # 从data中获取数字日期,并做简单的判断,你可以在这里做一些不同寻常的处理
    if dataNumber.endswith("921"):
        data = data+'
     今天是zimo生日'
        trigger=True # 这是示例用的触发器
        greeting='''亲爱的:
                  生日快乐,我最爱你的,么么哒.(=- =专业拉仇恨)
        '''
    
    msg['from'] = msgFrom
    msg['to'] = msgTo
    msg['subject'] = 'Python自动邮件-'+dataNumber
    content = data
    txt = email.mime.text.MIMEText(content)
    msg.attach(txt)
    smtp = smtplib
    smtp = smtplib.SMTP()
    '''
    smtplib的connect(连接到邮件服务器)、login(登陆验证)、sendmail(发送邮件)
    '''
    smtp.connect(smtpSever, smtpPort)
    smtp.login(msgFrom, sqm)
    smtp.sendmail(msgFrom, msgTo, str(msg))
    # 示例:这里利用对网络日期处理做了一些特殊的效果
    if trigger=True:
        msgFrom='xxxxxx@xx.com'
        smtp.sendmail(msgFrom, msgTo, str(greeting))
    
    # s = smtplib.SMTP("localhost")
    # s.send_message(msg)
    smtp.quit()
  • 相关阅读:
    vim python extension
    aws msk
    Install python3
    sns
    inventory
    批量添加监听端口
    template screen
    DNS name
    add jar and proxy repo
    模型诊断论文心得
  • 原文地址:https://www.cnblogs.com/fonttian/p/7294842.html
Copyright © 2011-2022 走看看