自制CSDN博客评论邮件提醒
CSDN 本身是有评论邮件提醒服务的。我知道,但是。。。。。。。。。。。
你们自己看吧。。。。
干啥啊?邮件轰炸机嘛??
拉黑,拉黑 !!!
自己搞一个了。
上代码:
# -*- coding:utf-8 -*-
import net
import re
import json
from EmailClass import Email_Ldef run():try:# 旧的评论数reviewCount = readReviewCount()# 获取网页上最新的评论数homeUrl = "https://blog.csdn.net/qq_28766327"homePage = net.getResponse(homeUrl).encode('utf8').decode('utf8') #注意这个编码问题reviewCountResult = re.search(u'<dt>评论</dt>.*?"count">(\d*?)</span>',homePage,re.S|re.M)if reviewCountResult != None:pageReviewCount = reviewCountResult.group(1)else:pageReviewCount = reviewCount# 如果网页上评论数比旧评论数多,证明有新评论print reviewCountprint pageReviewCountif str(reviewCount) != str(pageReviewCount):# 将新评论数记录下来writeReviewCount(pageReviewCount)# 获取评论信息content,userName,postTime = getNewReviewDetail(homePage)message = "<b>"+userName+":</b>"+content+"<br>"+postTime# 发送提醒邮件emailObj = Email_L()emailObj.senEmail(["1000000000@qq.com"],"【新博客评论】","html",message)except Exception as e:passdef getNewReviewDetail(homePage):try:# 获取文章 idnewArticleIdResult = re.search(r'class="newcomment-list".*?https://blog.csdn.net/qq_28766327/article/details/(.*?)#comments">',homePage,re.S|re.M)articleId = newArticleIdResult.group(1)# 根据文章ID获取评论列表reviewListUrl = "https://blog.csdn.net/qq_28766327/phoenix/comment/list/"+str(articleId)+"?page=1&size=15&tree_type=1"reviewDataString = net.getResponse(reviewListUrl)reviewData = json.loads(reviewDataString)lists = reviewData["data"]["list"]content = ""userName = ""postTime = ""commentId = 0# 找到最新一条评论for item in lists:info = item["info"]if int(info["CommentId"]) > commentId:commentId = info["CommentId"]content = info["Content"]userName = info["UserName"]postTime = info["PostTime"]if item.has_key("sub"):subArray = item["sub"]for sub in subArray:if int(sub["CommentId"]) > commentId:commentId = sub["CommentId"]content = sub["Content"]userName = sub["UserName"]postTime = sub["PostTime"]return content,userName,postTimeexcept Exception as e:return Nonedef readReviewCount():try:with open(r'./review_count',"r") as f:reviewCount = f.read()except Exception as e:reviewCount = 0return reviewCountdef writeReviewCount(reviewCount):with open(r'./review_count',"w") as f:f.write(str(reviewCount))if __name__ == "__main__":run()
备注:
1. net 模块是我用 requets 封装的网络请求工具,功能是在子线程中进行网络请求(我做另一个项目的时候发现,几十万次网络请求可能有一次会卡死进程)。这里它不重要,不要管他
2. EmailClass 是我封装的发送邮件的工具,这里它也不重要。不要管他。如果不知道怎么发邮件,可以看我的其他文章,我专门写了一篇
然后就是定时监测了,很简单 利用 linux的 crontab 一个定时任务搞定
30 9-21 * * * cd /home/xxxxxx/xxxxx; python checkReview.py > checkReview.log 2>&1 &
部署到我的树莓派上,完成
自制CSDN博客评论邮件提醒相关推荐
- 02 Hexo博客Butterfly主题配置博客评论邮件提醒
概述 个人博客搭建成功后已经上线运行了好久,但是一直没有时间配置评论区的邮件提醒功能,所以今晚有时间就抽空配置了,然后将操作过程做一下记录. 前提条件 一个已经上线运行的Hexo博客(至于用什么主题都 ...
- 每天定时查询CSDN博客访问量,并通过echarts进行展示
效果展示 Github链接:https://github.com/qushencn/springboot Csdn下载链接:https://download.csdn.net/download/wei ...
- 跟踪了下CSDN博客之星的竞选数据,我就看看不评论,你怎么看?
实时统计:http://csdn.didispace.com/ 我就看看,不评论,你怎么看? 我也在竞选CSDN博客之星,支持我点下面 集合!随我一起搞台 Macbook Pro 如何? 朕已阅
- 我的csdn博客所有的留言和评论我都不太想回复了
常言道,林子大了,什么鸟都有! 我的csdn博客所有的留言和评论我都不太想回复了: 第1,懒得回复: 第2,不太想回复: 第3,我既不太想,又懒得回复,尤其是喷子.酸子,我特别反感和讨厌,牛人一般都是 ...
- Android应用开发-小巫CSDN博客客户端之获取评论列表
Android应用开发-小巫CSDN博客客户端之获取评论列表 上一篇博客介绍了博文详细内容的业务逻辑实现,本篇博客介绍小巫CSDN博客客户端的最后一项功能,获取评论列表,这个功能的实现跟前面获取文章列 ...
- 布丁怪兽-csdn博客_证明在评论中-不是布丁
布丁怪兽-csdn博客 According to 根据 Internet World Stats, there are 3,611,375,813 Internet users around the ...
- wordpress撰写模式_如何在WordPress中撰写好的博客评论并绕过垃圾邮件过滤器
wordpress撰写模式 Have you ever thought about what makes a good blog comment? Want to know of a sure-fir ...
- 30行代码统计自己 CSDN 博客相关数据
1. 编写目的 爬虫本身是一个非常简单的事情,都是由于业务需要才变得越来越复杂的.为了方便广大开发者,也有很多简单好用的爬虫框架,但这里不使用那些已经实现了的专用框架,也不能起到任何商业化的目的,只是 ...
- 让人失望透顶的 CSDN 博客改版
前言 在 CSDN 写博已经 2 年有余,相比一些大佬,时间不算太长.但工作再忙,我也会保持每月产出,从未间断.每天上线回复评论,勘误内容,参加活动,看看阅读量已经成为一种习惯,可以说是 CSDN 博 ...
最新文章
- jittor和pytorch生成网络对比之wgan
- 算法------验证回文串
- mysql逗号分隔正则查询_正则表达式在逗号分隔的列表中查找字符串和下一个字符-MySQL?...
- 一个简单的Python调度器
- 网站转换APP源代码 WebAPP源代码 网站生成APP源代码 Flutter项目 带控制端
- timesten配置使用客户端连接timesten服务器
- Python之pip的安装和使用详细教程
- 鼠标模拟android,android_模拟鼠标指针demo
- 【vue笔记】页面跳转顺便传个值
- 深入理解Nginx 读书笔记
- 安全性、活跃性以及性能问题
- 育网云盘签约北京市大兴区黄村镇第一中心小学云端租赁服务
- Win32API大全
- MySql数据库版本查询
- mysql优化工具 MySQL Tuner
- 服务器ip显示未识别,Win7桌面右下角提示“未识别的网络”如何解决?
- 爬取了陈奕迅新歌《我们》10万条评论数据发现:原来,有些人只适合遇见
- 摄影初学者挑选相机的常见问题[转]_我是亲民_新浪博客
- 移动硬盘/U盘中的可执行文件打开时提示“Windows 无法访问指定设备、路径或文件。您可能没有合适的权限访问这个项目。”
- 星际争霸1没背景音乐的解决办法
热门文章
- Py之re:re正则表达式库的简介、常用函数、经典案例之详细攻略
- 一文读懂QEMU虚拟机
- Anaconda多环境多版本python配置指导
- errno_t open_s()打开文件出现的错误分析
- 子串字谜substring anagrams
- Python学习路程day20
- 椭圆曲线加密算法(ECC)原理和C++实现源码(摘录)
- STM32使用串口IDLE中断的两种接收不定长数据的方式
- C++ Primer 5th笔记(chap 17 标准库特殊设施)smatch
- 以太坊知识教程------智能合约(1)基本概念