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()
  • 相关阅读:
    Vsftpd 3.0.2 正式版发布
    Putdb WebBuilder 6.5 正式版本发布
    SoaBox 1.1.6 GA 发布,SOA 模拟环境
    pynag 0.4.6 发布,Nagios配置和插件管理
    Percona Playback 0.4,MySQL 负荷回放工具
    xombrero 1.3.1 发布,微型 Web 浏览器
    Hypertable 0.9.6.4 发布,分布式数据库
    libmemcached 1.0.11 发布
    CryptoHeaven 3.7 发布,安全邮件解决方案
    Android Activity生命周期
  • 原文地址:https://www.cnblogs.com/fonttian/p/7294842.html
Copyright © 2011-2022 走看看