先看一下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别弄错!!!!!