主要实现的功能就是:监控女神的 QQ空间,一旦女神发布新的说说,你的邮箱马上就会收到说说内容,是不是想了解一下

先看看代码运行效果图:

PS:只有你有一台云服务器你就可以把程序24h运行起来

直接上代码:

# -*- coding:utf-8 -*-
from bs4 import BeautifulSoup
from selenium import webdriver
import time
import random
import os # by 留歌36 from email.mime.text import MIMEText
import smtplib # 注意这里是配置你的源邮箱信息(发送邮件的邮箱)
account = ""
password = "" # 注意配置接收邮箱的信息
to = "893861319@qq.com" # 注意是女神的qq号码
qq="你的女神的QQ号码" #使用Selenium的webdriver实例化一个浏览器对象,在这里使用Phantomjs
driver = webdriver.PhantomJS(executable_path=r"F:\\phantomjs.exe") # 登录QQ空间
def get_shuoshuo(qq):
try:
# 注意更改http://user.qzone.qq.com/{女神的qq号码}/311
driver.get('http://user.qzone.qq.com/你的女神的QQ号码/311'.format(qq))
time.sleep(5)
driver.find_element_by_id('login_div')
except:
print("#####,没有找到login_div,说明您在线########")
sea()
time.sleep(30)
# 注意更改
get_shuoshuo('你的女神的QQ号码')
else:
print("#####,找到login_div,说明您没有登陆,现在开始登陆########")
# 如果页面存在登录的DIV,则模拟登录
driver.switch_to.frame('login_frame')
driver.find_element_by_id('switcher_plogin').click()
driver.find_element_by_id('u').clear() # 选择用户名框
# 注意更改为你的qq号码
driver.find_element_by_id('u').send_keys('####')
driver.find_element_by_id('p').clear()
# 注意更改为你的qq密码
driver.find_element_by_id('p').send_keys('#####')
driver.find_element_by_id('login_button').click()
time.sleep(3)
print("#####登陆成功########")
#注意更改为你女神的QQ号码
get_shuoshuo('你的女神的QQ号码')
#判断好友空间是否设置了权限,通过判断是否存在元素ID:QM_OwnerInfo_Icon
driver.implicitly_wait(3) def sea():
try:
driver.find_element_by_id('QM_OwnerInfo_Icon')
b = True
except:
b = False
#如果有权限能够访问到说说页面,那么定位元素和数据,并解析
if b == True:
driver.switch_to.frame('app_canvas_frame')
content = driver.find_elements_by_css_selector('.content')
stime = driver.find_elements_by_css_selector('.c_tx.c_tx3.goDetail')
shuoshuo = content[0].text
shijian= stime[0].text
context = '说说内容为:'+ shuoshuo
# context = '说说内容为:' + shuoshuo + " " + '发表时间是:' + shijian
cun = ''.join(context)
if toCheck(cun):
# 调用发送邮件的函数
print("##########准备发送邮件##########")
send(to, "女神空间更新啦~~", context)
print("##########发送邮件完成##########")
print("##########准备保存说说##########")
toSave(cun)
print("##########保存说说完成##########")
else:
print('***还没有发布新的说说***')
# driver.close()
# driver.quit() # 发送邮件的函数
def send(to, title, content):
msg = MIMEText(content)
msg['Content-Type'] = 'text/plain; charset="utf-8"'
msg['Subject'] = title
msg['From'] = account
msg['To'] = to
try:
smtp = smtplib.SMTP()
smtp.connect('smtp.163.com')
smtp.login(account, password)
smtp.sendmail(account, to, msg.as_string())
smtp.close()
except Exception as e :
print (str(e)) # 检查是否有新的内容发布
def toCheck(data):
if not os.path.exists('shuoshuo.txt'):
return True
else:
f = open('shuoshuo.txt','r')
existshuoshuo= f.readlines();
if data + '\n' in existshuoshuo:
return False
else:
return True # 保存说说内容到本地
def toSave(text):
f = open('shuoshuo.txt' , mode='a')
f.write(text+ '\n')
f.close() #让代码在服务器上一直跑着
while True:
get_shuoshuo(qq)

如果你有什么好的建议可以留言呢

有什么问题也可以留言,我会尽量第一时间回复你的

Python 爬虫监控女神的QQ空间新的说说,实现邮箱发送的更多相关文章

  1. Python 爬虫监控女神的QQ空间新的说说,实现秒赞,并发送说说内容到你的邮箱

    这个文章主要是在前一篇文章上新增了说说秒赞的功能 前一篇文章可以了解一下 那么,这次主要功能就是 监控女神的 QQ空间,一旦女神发布新的说说,马上点赞,你的邮箱马上就会收到说说内容,是不是想了解一下 ...

  2. 教你用python爬虫监控教务系统,查成绩快人一步!

    教你用python爬虫监控教务系统,查成绩快人一步!这几天考了大大小小几门课,教务系统又没有成绩通知功能,为了急切想知道自己挂了多少门,于是我写下这个脚本. 设计思路:设计思路很简单,首先对已有的成绩 ...

  3. 用python爬虫监控CSDN博客阅读量

    作为一个博客新人,对自己博客的访问量也是很在意的,刚好在学python爬虫,所以正好利用一下,写一个python程序来监控博客文章访问量 效果 代码会自动爬取文章列表,并且获取标题和访问量,写入exc ...

  4. python+selenium+requests爬取qq空间相册时遇到的问题及解决思路

    最近研究了下用python爬取qq空间相册的问题,遇到的问题及解决思路如下: 1.qq空间相册的访问需要qq登录并且需是好友,requests模块模拟qq登录略显麻烦,所以采用selenium的dri ...

  5. Python爬虫爬取一篇韩寒新浪博客

    网上看到大神对Python爬虫爬到非常多实用的信息,认为非常厉害.突然对想学Python爬虫,尽管自己没学过Python.但在网上找了一些资料看了一下,看到爬取韩寒新浪博客的视频.共三集,第一节讲爬取 ...

  6. Python爬虫实战:使用Selenium抓取QQ空间好友说说

    前面我们接触到的,都是使用requests+BeautifulSoup组合对静态网页进行请求和数据解析,若是JS生成的内容,也介绍了通过寻找API借口来获取数据. 但是有的时候,网页数据由JS生成,A ...

  7. python爬虫实例大全

    WechatSogou [1]- 微信公众号爬虫.基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典. DouBanSpider [2]- ...

  8. Python爬虫项目整理

    WechatSogou [1]- 微信公众号爬虫.基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典. DouBanSpider [2]- ...

  9. 32个Python爬虫项目让你一次吃到撑

    整理了32个Python爬虫项目.整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快~O(∩_∩)O WechatSogou [1]- 微信公众 ...

随机推荐

  1. C笔记_C语言环境、编译、预处理

    1.环境 gcc -v //查看环境变量 gcc 同 g++ gcc main.c -o main.exe gcc main.c //默认生成a.exe 2.编译 预处理:   gcc -E main ...

  2. ASP.NET Core中使用Csp标头对抗Xss攻击

    内容安全策略(CSP)是一个增加的安全层,可帮助检测和缓解某些类型的攻击,包括跨站点脚本(XSS)和数据注入攻击.这些攻击用于从数据窃取到站点破坏或恶意软件分发的所有内容(深入CSP) 简而言之,CS ...

  3. list 分组

    Map<Long, List<LogDataVo>> corpIdMap = list.stream().collect(Collectors.groupingBy(LogDa ...

  4. HTML(六)框架,颜色,脚本,字符实体,统一资源定位器

    HTML 框架 HTML框架 通过使用框架,你可以在同一个浏览器窗口中显示不止一个页面 Iframe移除边框 使用iframe来显示目标链接页面 RUNOOB.COM HTML 颜色 rgb(255, ...

  5. Apache JMeter HTTPS(S) Test Script Recorder

    参考Apache官网资料:http://jmeter.apache.org/usermanual/jmeter_proxy_step_by_step.pdf 1. 进入apache-jmeter-2. ...

  6. Kth Minimum Clique_2019牛客暑期多校训练营(第二场)

    题目连接: https://ac.nowcoder.com/acm/contest/882/D Description Given a vertex-weighted graph with N ver ...

  7. 【转 | 侵删】2D 绘图技术中的坐标系统与坐标变换

    本文介绍在 2D 绘图技术中的坐标系统和坐标变换的相关知识.同时介绍 Kity 在这方面提供的 API .希望这些知识对于需要进行图形应用开发的同学会有所帮助. 锤子的故事 很久以前,有一个画家,他很 ...

  8. poj 1177 Picture(线段树周长并)

    题目链接:http://poj.org/problem?id=1177 题意:给你n个矩形问你重叠后外边缘总共多长. 周长并与面积并很像只不过是处理的时候是   增加的周长=abs(上一次的线段的长度 ...

  9. POJ2084 Game of Connections 卡特兰数 关于卡特兰数经典的几个问题

    Game of Connections Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 9128   Accepted: 44 ...

  10. 【Spring】容器刷新(refresh)流程解析

    一.概述 二.prepareRefresh() 三.obtainFreshBeanFactory() 四.prepareBeanFactory(beanFactory); 五.postProcessB ...