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()
原文地址:https://www.cnblogs.com/fonttian/p/7294842.html