微博Rss邮箱推送系统

微博Rss邮箱推送

? Weibo subscription and sentiment analysis.

假期在家无聊,想到做一个微博订阅系统,可以将朋友or女朋友的微博更新动态通过邮件推送给我。

就是这样,代码已经写好了,就差个女朋友了。

最后的效果就是实时检测某一微博博主新发的微博,然后进行邮件通知。

项目地址 : https://github.com/CasterWx/WeiboRSS

演示

启动

监控到微博更新,发送邮件

用户更新动态 邮件推送

实现

总体来说后台是一个爬虫,用来定时监控微博用户动态,所以我们首先要完成的是微博动态爬虫。

每一个动态用Bean来存储。

我们利用HttpClient类来实现爬取指定URL下的网页源码。

抓取微博内容的原理很简单,新浪微博的微博秀是不需要登录就可以访问的,直接爬取解析页面就可以拿到微博内容。

http://service.weibo.com/widget/widget_blog.php?uid=`用户id`

微博用户主页是根据id来确定的,所以我们需要通过用户id来进行爬取。

获得的信息如下,接下来需要对网页内容进行解析,这里我使用正则表达式对内容解析匹配。

在对历史动态处理时,我们将历史动态存储入一个HashMap中,每一条微博有一个唯一的URL,所以key使用动态的URL,value值为Bean,也就是动态类。

接下来创建一个线程,实时分析目标动态,判断是否有新的URL出现在HashMap中。

若存在新的URL,则在添加之后发送邮件给订阅用户。

发送邮件使用的是QQ邮箱,需要在QQ邮箱中开启STMP服务,并获取其给定的客户端授权码。

开启之后保存给定的授权码,使用Java-Mail进行邮件发送。

 public static void Send(String myMailAddress,String mailAddress,String stmpPassword,WebBean webBean) throws AddressException,MessagingException {Properties properties = new Properties();properties.put("mail.transport.protocol", "smtp");// 连接协议properties.put("mail.smtp.host", "smtp.qq.com");// 主机名properties.put("mail.smtp.port", 465);// 端口号properties.put("mail.smtp.auth", "true");properties.put("mail.smtp.ssl.enable", "true");// 设置是否使用ssl安全连接 ---一般都使用properties.put("mail.debug", "true");// 设置是否显示debug信息 true 会在控制台显示相关信息// 得到回话对象Session session = Session.getInstance(properties);// 获取邮件对象Message message = new MimeMessage(session);// 设置发件人邮箱地址message.setFrom(new InternetAddress(myMailAddress));// 设置收件人邮箱地址message.setRecipients(Message.RecipientType.TO, new InternetAddress[]{new InternetAddress(mailAddress)});//message.setRecipient(Message.RecipientType.TO, new InternetAddress("xxx@qq.com"));//一个收件人// 设置邮件标题message.setSubject(webBean.getTitle());// 设置邮件内容message.setText("您订阅的博主更新啦!!!\n...更新内容....");// 得到邮差对象Transport transport = session.getTransport();// 连接自己的邮箱账户transport.connect(myMailAddress, stmpPassword);// 密码为QQ邮箱开通的stmp服务后得到的客户端授权码// 发送邮件transport.sendMessage(message, message.getAllRecipients());transport.close();}

stmpPassword就是我们获取到的授权码, myMailAddress是我们自己的邮箱地址,收件人地址可以是多人,也可以是一人。

总体流程就已经概述完了,接下来就可以部署到服务器跑起来啦~

后继还可以将微博动态进行情绪值分析,之前在Github上发布过一个情绪分析样本https://github.com/CasterWx/python-girlfriend-mood

posted @ 2019-01-25 15:21 AntzUhl 阅读(...) 评论(...) 编辑 收藏

微博Rss邮箱推送系统相关推荐

  1. [转]关于安卓与ios的推送系统,我说说自己的看法。

    http://www.miui.com/thread-328820-1-1.html 刚刚看到一个关于集成米聊微信等推送系统的投票贴,感触很深,确实用Android以来其推送的占用资源和不稳定性让我有 ...

  2. 钉钉一行代码_利用Python快速搭建钉钉和邮件数据推送系统

    前面的文章我们写到了利用Python实现钉钉和邮件的数据推送,在数据处理这一块实现了对mysql和odps的数据获取和处理,可以满足常规业务大部分数据场景需求,在一家初创公司数据基础建设还不完善的时候 ...

  3. 千万级在线推送系统架构解析

    2019独角兽企业重金招聘Python工程师标准>>> 千万级在线推送系统架构解析 移动短消息是大家所熟知的一种信息推送方式, 基于信令通道的推送在简单信息的体验方面已经被大家所接受 ...

  4. 设计一个百万级的消息推送系统

    2019独角兽企业重金招聘Python工程师标准>>> 前言 首先迟到的祝大家中秋快乐. 最近一周多没有更新了.其实我一直想憋一个大招,分享一些大家感兴趣的干货. 鉴于最近我个人的工 ...

  5. 用 Celery 实现邮件推送系统

    2019独角兽企业重金招聘Python工程师标准>>> 系统需求 本文以Celery 实现分布式任务队列为基础,简述了一个邮件推送系统的模型. Celery 是 Distribute ...

  6. android推送如何推送不在线设备,推送系统从0到1(四):消息如何到达用户设备...

    本篇主要为大家揭秘推送消息是如何传输的,如何到达用户设备上的,在不同的设备上会如何展示. 在上一篇文章中,我们可以知道在建立推送任务的过程中,需要考虑带有自滤功能的用户池构建.筛选有效用户.设置推送内 ...

  7. 若依集成CIM(即时推送系统)实现将服务端修改为SpringBoot+Vue前后端分离版(文末见代码下载)

    场景 若依前后端分离版本地搭建开发环境并运行项目的教程: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662 CIM ...

  8. 划重点|iOS15正式发布, 全新的通知推送系统,你必须要知道

    简介: 今年友盟+联合达摩院决策智能实验室讲算法技术,推出国内首个智能推送功能,帮助产品运营人员实现一键式触达的精细化运营.通过精心打磨的在线学习与优化算法,对推送人群与推送文案进行精准匹配,最大化用 ...

  9. django+python搭建消息推送系统

    django+channels+websocket完成一个实时推送系统 前言 因公司项目需求,需要建立一个展示网站,接入两台摄像机,当摄像机的照片流传过来的时候,实时展示到网页中,所以需要做一个实时推 ...

最新文章

  1. 《代码敲不队》第八次团队作业:Alpha冲刺 第二天
  2. angular 用拦截器统一处理http请求和响应 比如加token
  3. eclipse 设置PythonIDE
  4. python爬虫实战案例-Python爬虫实战案例:手机APP抓包爬虫
  5. [POI2005]BAN-Bank Notes
  6. android finish()传参数,48. (android开发) activity间传递数据(打开浏览器、拨号盘、传参)...
  7. Android 高级Drawable资源---复合Drawable----变换Drawable---RotateDrawable用法实例
  8. Redis的文件事件与时间事件处理
  9. oss读取txt文件
  10. 通信原理的新认识-从实践到原理
  11. java socket是什么_Java网络编程-JavaSocket编程是什么呢?
  12. cruzer php sandisk 闪迪u盘量产工具_sandisk量产工具(闪迪U盘量产工具)
  13. HTML动画滑动图片特效
  14. EMC的青青子衿及其它
  15. eclipse 中使用@slf4j报log找不到
  16. 微信前台WEUI前台实例+EXCEL导出,SSM框架完整流程
  17. 低成本快速开发 LoRa 终端:从 0 到 1
  18. Windows Phone7屏幕方向与常用控件
  19. session取不到的原因_游戏id不会取?来看看职业选手是如何取id的!满满的干货哦。...
  20. 【正点原子FPGA连载】第二十七章DS18B20数字温度传感器实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1

热门文章

  1. faker所有常用函数整理,测试工程师自动生成测试数据生成
  2. ssl加速网关_SSL加速解决方案
  3. 关于CSS边框合并问题简述
  4. macbook配置openGL环境(GLFW+GLEW)
  5. 在线平台制作App要如何实现后台管理系统
  6. [附源码]Java计算机毕业设计SSM电子病历系统
  7. 《AHNG: Representation learning on attributed heterogeneous network(2019-Elsevier)》
  8. el-tabe单元格合并
  9. java 全角转半角,半角转全角
  10. java计算机毕业设计在线学习跟踪系统后台源程序+mysql+系统+lw文档+远程调试