20210825 Python 收集新闻发送邮件

# @Time:2021-8-24 10:26
import requests
from lxml import etree
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
from email.header import Header
import datetime

def get_news():
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36'}
    url = 'https://www.chinanews.com/'
    response = requests.get(url=url,headers=headers)
    selector = etree.HTML(response.content, parser=etree.HTMLParser(encoding='utf8'))
    daodu = selector.xpath('//*[@id="daodu"]/div[@class="xwzxdd-dbt"]')[0:]
    news = []
    for item in daodu:
        new = item.xpath('./h1/a/text()')[0:]
        news.extend(new[0:])
    print(news)
    return news

def send_news():
    date = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 获取当前日期时间
    # 输入Email地址和口令:
    mail_user_name = 'miya'
    mail_user = 'miy****@163.com'
    mail_pass = 'CEN********KG'
    # 输入收件人地址:
    receivers = ["33*****@qq.com"]
    # 输入SMTP服务器地址:
    smtp_server = 'smtp.163.com'

    #输入要发送的内容:
    news_list = get_news()
    # print(news_list)
    msg_header = 'Information collection - miya'
    news = "Today's news from python:"+"\n"+date
    for i in range(0,len(news_list)):
        news = news + "\n %s"%news_list[i]+"\n"
    print(news)
    msg = MIMEText(news, 'plain', 'utf-8')
    msg['From'] = formataddr([mail_user_name, mail_user])
    server = smtplib.SMTP_SSL(smtp_server)
    msg['Subject'] = Header(msg_header, 'utf-8')
    # SMTP协议默认端口是25
    #server.set_debuglevel(1)
    server.login(mail_user, mail_pass)
    try:
        for item in receivers:
            server.sendmail(mail_user, [item], msg.as_string())
        print("Success: 已成功发送邮件!")
        server.quit()
    except smtplib.SMTPException:
        print("Error: 无法发送邮件")

if __name__ == '__main__':
    send_news()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值