scrapy使用并发送email

Scrapy整合发送Email实战
本文介绍了如何在Python的Scrapy框架中发送Email。利用smtplib和email模块,通过Scrapy的mail模块的MailSender类,实现发送邮件的功能。详细讲解了两种方式:一是从settings文件中读取配置,二是直接在MailSender类中配置。两种方法都可以通过send()方法发送邮件,包括正文、主题、抄送和附件,并强调了在处理中文和请求数据时需要转化为utf-8编码的重要性。

由于最近进行scrapy的学习,此篇文章做个记录。
使用脚本来发送email在python有两个模块来支持:smtplib和email

此处是讲述如何用scrapy来发送,那么不管是何种语言或框架,它的过程都是类似于连接数据库,需要一个先构建一个发送器,通过对应的端口号,用户名,密码,以及发送的文本或命令。当然发送email此处变成了邮箱和密码,增加了从哪来(from)到哪去(to)的过程.并以两种方式来实现

*上菜:
两种方式不论是从爬虫中去部署配置还是setting读取都必须基于scrapy.mail模块的MailSender类实现
from scrapy.mail import MailSender
1,setting读取,首先setting文件设置

MAIL_FROM##'scrapy@localhost'用于发送email的地址(address)(填入 From:) 。
MAIL_HOST##默认值: 'localhost'发送email的SMTP主机(host)。
MAIL_PORT##默认值: 25发用邮件的SMTP端口
MAIL_USER##默认值: None SMTP用户。如果未给定,则将不会进行SMTP认证(authentication)。
要在 PyCharm 中使用 Scrapy 爬取数据发送邮件,可以参考以下步骤和代码示例。 ### 1. 创建 Scrapy 项目 在 PyCharm 的终端中使用以下命令创建一个新的 Scrapy 项目: ```bash scrapy startproject myproject cd myproject scrapy genspider myspider example.com ``` ### 2. 编写爬虫代码 在 `myproject/spiders/myspider.py` 中编写爬虫代码,以下是一个简单示例: ```python import scrapy class MySpider(scrapy.Spider): name = "myspider" start_urls = ['https://example.com'] def parse(self, response): # 这里是数据提取逻辑 data = response.css('div.some-class::text').getall() # 假设这里调用发送邮件函数 self.send_email(data) yield {'data': data} def send_email(self, data): import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart # 配置邮箱信息 sender_email = "your_email@example.com" receiver_email = "recipient_email@example.com" password = "your_email_password" message = MIMEMultipart() message["From"] = sender_email message["To"] = receiver_email message["Subject"] = "Scrapy 爬取数据通知" # 邮件正文 body = "以下是 Scrapy 爬取到的数据:\n" + "\n".join(data) message.attach(MIMEText(body, "plain")) # 发送邮件 with smtplib.SMTP("smtp.example.com", 587) as server: server.starttls() server.login(sender_email, password) text = message.as_string() server.sendmail(sender_email, receiver_email, text) ``` ### 3. 运行爬虫 在 PyCharm 的终端中运行以下命令启动爬虫: ```bash scrapy crawl myspider ``` ### 注意事项 - 要确保你的邮箱开启了 SMTP 服务,获取到正确的 SMTP 服务器地址和端口。 - 部分邮箱可能需要使用授权码而不是密码进行登录。 - 为了提高代码的可维护性,可以将邮件发送的逻辑封装到一个独立的模块中。
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值