Python 爬虫监控女神的QQ空间新的说说,实现邮箱发送
主要实现的功能就是:监控女神的 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空间新的说说,实现邮箱发送的更多相关文章
- Python 爬虫监控女神的QQ空间新的说说,实现秒赞,并发送说说内容到你的邮箱
这个文章主要是在前一篇文章上新增了说说秒赞的功能 前一篇文章可以了解一下 那么,这次主要功能就是 监控女神的 QQ空间,一旦女神发布新的说说,马上点赞,你的邮箱马上就会收到说说内容,是不是想了解一下 ...
- 教你用python爬虫监控教务系统,查成绩快人一步!
教你用python爬虫监控教务系统,查成绩快人一步!这几天考了大大小小几门课,教务系统又没有成绩通知功能,为了急切想知道自己挂了多少门,于是我写下这个脚本. 设计思路:设计思路很简单,首先对已有的成绩 ...
- 用python爬虫监控CSDN博客阅读量
作为一个博客新人,对自己博客的访问量也是很在意的,刚好在学python爬虫,所以正好利用一下,写一个python程序来监控博客文章访问量 效果 代码会自动爬取文章列表,并且获取标题和访问量,写入exc ...
- python+selenium+requests爬取qq空间相册时遇到的问题及解决思路
最近研究了下用python爬取qq空间相册的问题,遇到的问题及解决思路如下: 1.qq空间相册的访问需要qq登录并且需是好友,requests模块模拟qq登录略显麻烦,所以采用selenium的dri ...
- Python爬虫爬取一篇韩寒新浪博客
网上看到大神对Python爬虫爬到非常多实用的信息,认为非常厉害.突然对想学Python爬虫,尽管自己没学过Python.但在网上找了一些资料看了一下,看到爬取韩寒新浪博客的视频.共三集,第一节讲爬取 ...
- Python爬虫实战:使用Selenium抓取QQ空间好友说说
前面我们接触到的,都是使用requests+BeautifulSoup组合对静态网页进行请求和数据解析,若是JS生成的内容,也介绍了通过寻找API借口来获取数据. 但是有的时候,网页数据由JS生成,A ...
- python爬虫实例大全
WechatSogou [1]- 微信公众号爬虫.基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典. DouBanSpider [2]- ...
- Python爬虫项目整理
WechatSogou [1]- 微信公众号爬虫.基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典. DouBanSpider [2]- ...
- 32个Python爬虫项目让你一次吃到撑
整理了32个Python爬虫项目.整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快~O(∩_∩)O WechatSogou [1]- 微信公众 ...
随机推荐
- 使用Springboot Cache做简单缓存
使用Springboot Cache做简单缓存 1.简单介绍 当我们需要展示数据的时候,后台会根据需要从服务器中获取数据,但是频繁的请求数据库会对服务造成压力,于是我们引入了缓存这个概念. 当 ...
- 第1章 NLP基础
大纲 NLP基础概念 NLP的发展与应用 NLP常用术语以及扩展介绍 1.1 什么是NLP 基本分类 自然语言生成(Natural Language Generation,NLG) 指从结构化数据中以 ...
- 基于Taro与Typescript开发的网易云音乐小程序
基于Taro与网易云音乐api开发,技术栈主要是:typescript+taro+taro-ui+redux,目前主要是着重小程序端的展示,主要也是借此项目强化下上述几个技术栈的使用,通过这个项目也可 ...
- [python]代码中包含中文,提示:SyntaxError: Non-ASCII character '\xcd'
解决方法: 把文件编码方式改为gbk即可.在代码开头写上: # coding=gbk
- P1963 [NOI2009]变换序列 倒叙跑匈牙利算法
题意 构造一个字典序最小的序列T,使得 Dis(i, Ti) = di,其中i是从0开始的,Dis(x,y)=min{∣x−y∣,N−∣x−y∣} ,di由题目给定. 思路 二分图匹配,把左边的看成i ...
- Codeforces Round #385 (Div. 2) C - Hongcow Builds A Nation
题目链接:http://codeforces.com/contest/745/problem/C 题意:给出n个点m条边,还有k个不能连通的点,问最多能添加几条边. 要知道如果有n个点最多的边是n*( ...
- 线段树模板 hdu 1166 敌兵布阵
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- 文档打印 js print调用打印dom内容
1.首先按目前研究 print可以打印dom 2.被设置overflow:hidden 的模块,打印时会被截掉. 3.被设置成 display:none 的dom 打印不会有样式 边框等. 4.如果需 ...
- Spring中常用的23中设计模式
1.spring 中常用的设计模式有23中 分类 设计模式 创建型 工厂方法模式(FactoryMethod).抽象工厂模式(AbstractFactory).建造者模式(Builder).原型 ...
- if __name__ = "main" 解释