weixin_46415501 2020-03-13 19:41 采纳率: 66.7%
浏览 884
已结题

smtplib断开连接:连接意外关闭?

Python—爬虫之实操项目:将爬取的数据定时发送邮件‘

import requests #导入requests库
import smtplib #发送邮件使用
import schedule #定时发送
import time #时间模块
from bs4 import BeautifulSoup #导入BeautifulSoup
from email.mime.text import MIMEText #构建邮件内容
from email.header import Header #构建邮件头

#输入隐私信息
mailbox = input('请输入你的邮箱:')
password = input('请输入你的密码:')
receiver = input('请输入收件人的邮箱')

#爬取数据
def foods():
url = 'http://www.xiachufang.com/explore/'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36'}
res = requests.get(url,headers = headers)
soup = BeautifulSoup(res.text,'html.parser')
list_foods = soup.find_all('div',class_ = 'info pure-u')

list_all = []

for food in list_foods:
    title = food.find('a').text.strip()
    herf = 'http://www.xiachufang.com' + food.find('a')['href']
    pei_l = food.find('p',class_ = 'ing ellipsis').text.strip()
    list_all.append([title,herf,pei_l])
return list_all

#发送邮件
def send_email(list_all):
global mailbox,password,receiver #设置为全局变量
mailhost = 'smtp.qq.com'
qqmail = smtplib.SMTP()
qqmail.connect(mailhost,46)
qqmail.login(mailbox,password)
content = list_all
massage = MIMEText(content,'plain','utf-8')
subject = '本周最受欢迎菜谱'
message['subject'] = Header(subject,'utf-8')
try:
qqmail.sendmail(mailbox,receiver,message.as_string())
print('邮件发送成功')
except:
print('邮件发送失败')
qqmail.quit()

#定时执行任务
def job():
print('开始执行')
list_all = foods() #调取爬取数据的函数并将结果赋值给新变量
send_email(list_all) #调取发送邮件的函数,并传入邮件内容
print('任务完成')

schedule.every().day.at("10:30").do(job) #设定每天10:30执行任务
while True: #当符合条件的情况下就执行任务
schedule.run_pending()
time.sleep(2)

Traceback (most recent call last):
File "D:\hello-world.py\youjian4.py", line 10, in
qqmail.connect(mailhost,465)
File "D:\py\lib\smtplib.py", line 338, in connect
(code, msg) = self.getreply()
File "D:\py\lib\smtplib.py", line 394, in getreply
raise SMTPServerDisconnected("Connection unexpectedly closed")
smtplib.SMTPServerDisconnected: Connection unexpectedly closed

总是出现这个问题,请问该怎么解决

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-03-13 23:27
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突