定时发送邮件任务

 1.第一步把所有故事的链接写入文件

import json
import requests
from lxml import etree
from fake_useragent import UserAgent

ua=UserAgent()
useragent=(ua.random)
headers={'useragent':useragent}


def requests_html(url):
    response=requests.get(url=url,headers=headers).content.decode('utf-8')
    tree=etree.HTML(response)
    title_list=tree.xpath('//div[@id="Mhead2_0"]/dl/dd')
    for story in title_list:
        title=story.xpath('./a/text()')[0]
        story_url=story.xpath('./a/@href')[0]
        story_url='http://www.tom61.com/'+story_url
        story_dict={}
        story_dict['故事名']=title
        story_dict['story_url']=story_url
        story_list.append(story_dict)
    with open('story.json','w', encoding='utf-8')as fp:
        json.dump(story_list,fp, ensure_ascii=False)
if __name__ == '__main__':
    story_total=[]
    story_list = []
    url='http://www.tom61.com/ertongwenxue/shuiqiangushi/index.html'
    requests_html(url)
    for i in range(2,10):
        url_base= f'http://www.tom61.com/ertongwenxue/shuiqiangushi/index_{i}.html'
        requests_html(url_base)
    print(story_list)

2 读出文件并发送文件


import json
import requests
from fake_useragent import UserAgent
from lxml import etree
import random

ua=UserAgent()
useragent=(ua.random)
headers={'useragent':useragent}

def request_html(story):
    url=story['story_url']
    response=requests.get(url,headers=headers).content.decode('utf-8')
    tree=etree.HTML(response)
    content_list=tree.xpath('//div[@class="t_news_txt"]/p/text()')
    content =''.join(content_list)
    print(content)
    return content


import smtplib
from email.mime.text import MIMEText
def send_email(name,content):
#发送方邮箱:
    msgfrom='1637805820@qq.com'
#授权码:
    password ='bwgzjjef'
#收件人邮箱:
    receiver='846950@qq.com'
    subject =name #主题
    msg = MIMEText (content,'plain','utf-8')
    msg['Subject']= subject
    msg['From']= msgfrom
    msg['To']= receiver


    try:
        smtp = smtplib.SMTP()
        smtp.connect('smtp.qq.com')
        smtp.login(msgfrom,password)
        smtp.sendmail(msgfrom,msg['To'],msg.as_string())
        print('发送成功')
    except:
        print('发送失败')
        pass





if __name__ =='__main__':
    name='maguq'
    story_total=[]
    Q = r"E:\爬虫练习\定式发送爬取邮件\story.json"
    with open(Q,'r',encoding='utf-8')as fp:
        story_lis=json.load(fp)
    story=random.choice(story_lis)
    content=request_html(story)
    send_email(name,content)



 

#群发

 实现定时发送功能
在windows的环境中,在cmd中输入compmgmt.msc,将该脚本文件加入任务计划程序库,设置运行时间和频率



进入创建任务以后,需要一直点击下一步进行操作:【按照下一步操作一步一步添加即可,部分提示如下:】


注意:设置完成以后,一定需要先用命令行启动脚本,查看是否该有环境问题,导致代码运行有问题

如果没有问题,就OK了

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
定时自动发送邮件服务使用说明 该软件运行环境需要.Net 3.5支持,Win7系统上可以直接运行. 主要功能可以定时自动发送邮件,发送程序做成服务形式,用户无需登录, 只要电脑是开启状态,就会自动执行发送邮件. 包含的文件, 1.AutoSendMail.exe --设置程序 2.AutoSendMail_Log.txt --存放日志的文本文件. 可自动生成 3.AutoSendMail_Setting.xml --配置文件 4.AutoSendMailService.exe --服务程序 5.InstallUtil.exe --微软的安装服务必须程序 6.tasks.mdb --Access数据库文件,用于存放邮箱内容. 可更改文件 7.安装服务.bat 8.使用说明.txt 9.卸载服务.bat 安装步骤: 第一步:安装服务 运行“安装服务.bat”文件。(需要管理员权限) 第二步:修改配置文件 修改好配置文件AutoSendMail_Setting.xml。确保Access数据库连接正确,每个任务的发送时点,和邮件信息。 每次修改配置文件必需重新启动服务才生效。 第三步:启动服务 a.从服务管理控制台启动服务,运行services.msc命令打开控制台。 b.通过设置程序启动服务。(需要管理员权限) 如果删除服务,则运行“卸载服务.bat”。 接口定义: 每个任务需要在指定的Access数据库里设置一个视图或表,用于存放邮件信息, 字段格式: 第一字段:ID 自动编号 第二字段:收件人 文本类型 第三字段:抄送人 文本类型 第四字段:主题 文本类型 第五字段:内容 备注类型 第六字段:发送次数 数字类型 备注:程序通过ID查找记录,来更新发送次数的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值