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

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

#coding:utf-8
#导入所需要的工具包
import smtplib
import time
from 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 sys
import urllib.request
import urllib.parse
import time
import chardet
import re
import youjian
cookie = ''  #此处填入你的cookie
date = {}


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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值