python QQ空间新说说邮件提醒功能实现

来源:互联网 发布:德州大气环境监测数据 编辑:程序博客网 时间:2024/05/16 12:15

先看一下qq邮件是怎么发送的!!
我们先做一个qq邮件发送的插件

#coding:utf-8#导入所需要的工具包import smtplibimport timefrom email.mime.text import MIMEText# 第三方 SMTP 服务#定义发送邮件的函数方便外部调用def send_email(host,user,pass_,rece,text,title):    mail_host= host#设置服务器    mail_user=  user  #用户名    mail_pass= pass_  #从QQ邮箱官网打开SMTP功能并获取SMTP的密码,注意不是QQ密码!!    sender = user  #你的邮箱地址    receiver = rece# 接收邮件,可设置为你的QQ邮箱或者其他邮箱    message = MIMEText(text, 'plain', 'utf-8')    message['Subject'] = title #邮件的主题    message['From'] = sender #邮件的发送人邮箱地址    message['To'] =  receiver #收件人邮箱地址    smtpObj = smtplib.SMTP_SSL(mail_host)          smtpObj.login(mail_user,mail_pass)#登录邮箱    print('ok')    smtpObj.sendmail(sender, receiver, message.as_string())    print ("邮件发送成功") #成功发送提示    print(message.as_string())host = 'smtp.qq.com'user = "1490442763@qq.com"pass_= "lwsiiwhocgn*****" #从QQ邮箱官网获取smtp密码rece = '1967692826@qq.com'text = 'python'title = '猪啊你'if __name__ == '__main__':    for i in range(1,101):        send_email(host,user,pass_,rece,title+' -- '+str(i),text)        time.sleep(1.5)

既然实现了邮件的发送后面的也就简单了
因为qq空间需要 账号密码登录比较麻烦,所以我们可以直接用cookie登录。
下一步就是要获取cookie,方法如下:登录你的qq空间,推荐使用‘https://h5.qzone.qq.com/mqzone/index’,这是手机版的QQ空间,比较简单。登陆成功后按下“F12”键如下:这里写图片描述
如图所示选择network,点击‘F5’刷新,然后在name选项栏中找到index文件并确定,在右边出现的request headers选项中找到cookie 这就是我们需要的cookie 复制保存。

接下来就有编写我们的主程序了!

import sysimport urllib.requestimport urllib.parseimport timeimport chardetimport reimport youjiancookie = ''  #此处填入你的cookiedate = {}req = urllib.request.Request(url)req.add_header('User-Agent',user_agent)req.add_header('Cookie',cookie)req.add_header('Connection','keep-alive')def get():    html = urllib.request.urlopen(req).read().decode('utf-8','ignore').encode('gbk',errors='ignore').decode('gbk')    r1 = r'<div class="feed-bd">(.*?)</div>'    r2 = r'<span class="username".*?>(.*?)</span>'    #用正则匹配我们需要的好友和消息    global user    global neirong    user = re.findall(r2,html)    neirong = re.findall(r1,html)#print(user)#print(neirong)#第一次获取空间内发送说说的好友并保存,以后每隔一段时间进行一次获取。如果过去到的和已保存的信息不一致那么久发送邮件到我们指定的邮箱。p = ""for j in range(1,999999999):    if j == 1:        print('--------------------------------------')        print('开始运行')    get()    #f = open("texe.txt",'w+')    #f.write(html)    #f.close()    print(user)    #print(neirong)    l = len(user)    #for i in range(0,l):        #print(user[i])        #print(neirong[i]+'\n')    if user!=p and j == 1:        p = user    if user!=p and j!=1:        p = user        print('--------------------------------------')        r3 = r'<p class="txt">(.*?)</p>'        key = re.findall(r3,neirong[0])        key = key[0]        if key == '':            key = '无内容!'        title = user[0]+'发表了新的说说'        print(title)        print(key)        print('--------------------------------------')#运用我们所写的‘邮件’插件中的send_email函数发送邮件       youjian.send_email('smtp.qq.com','1490442763@qq.com','lwsiiwhocgnkijji','657873584@qq.com',key,title)    #print(s)    #print(p)    #休息5秒    time.sleep(5)

程序运行时的界面
程序运行的图片

收到的邮件提醒
邮件提醒

完毕!
关键是cookie别弄错!!!!!

1 0