• 热门专题

Python写的CSDN信息推送小助手

作者:  发布日期:2016-12-26 20:23:30
Tag标签:助手  信息  
  • 转载请注明出处:http://blog.csdn.net/gamer_gyt
    博主微博:http://weibo.com/234654758
    Github:https://github.com/thinkgamer


    前言

    这几天突然萌生了一个想法:自己写个python程序,定时查询一下自己的CSDN博客的一些信息,并以邮件的形式推送给自己,那么废话不多说,现在已经把基本功能给实现了,每天可以定时发送访问量,积分,排名,同时会比较前一天的数据,形成对比,呈现给自己,这样就能一目了然的看到自己每天博客的PV增加数目了,如果你感兴趣,拿去玩吧

    本文永久地址:http://blog.csdn.net/gamer_gyt/article/details/53823842


    内容包括

    由于是第一版,实现的功能比较简单,只是发送自己博客的PV,积分,排名,原创文章数,转载文章数,翻译文章数,评论条数和同比前一天的增长数量

    后续计划:封装成web的形式,融合自己之前做的一个博客统计分析系统,使之前的产品更加完善,而且会逐步封装成谷歌浏览的插件形式,供大家使用方便

    博客统计分析系统git地址:https://github.com/Thinkgamer/BlogAnalysic


    代码结构

     

    这里写图片描述

    说明:

     

    这里并没有采用数据库存储,而是直接写进csv文件,后续会更新 这里对每篇文章的数据也做了解析,只不过暂时注释了,没有进行推送,因为还没想好合适的方式

    涉及的技术

    目前涉及:

    python 爬虫 python 发送email

    主要代码

    别的代码都比较烂,这里主要说一下python发送email示例

    #-*-coding:utf-8-*-
    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header
    
    def send_email():
        message = 'test'
        # 第三方 SMTP 服务,我这里设置的是网易163邮箱
        mail_host = 'smtp.163.com'  # 设置服务器
        mail_user = 'thinkgamer@163.com'  # 用户名
        mail_pass = 'xxxxxxxxxxx'  # 密码
    
        sender = 'thinkgamer@163.com'
        receive='thinkgamer@163.com'
    
        # 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
        message = MIMEText(message, 'plain', 'utf-8')
        message['From'] = Header(sender, 'utf-8')
        message['To'] =  Header(receive, 'utf-8')
    
        subject = 'CSDN博客访问信息统计'
        message['Subject'] = Header(subject, 'utf-8')
    
        try:
            smtpObj = smtplib.SMTP()
            smtpObj.connect(mail_host, 25)    # 25 为 SMTP 端口号
            smtpObj.login(mail_user,mail_pass)
            smtpObj.sendmail(sender, receive, message.as_string())
            print('邮件发送成功')
        except smtplib.SMTPException as e:
            print('Error: 无法发送邮件')

    说明:我这里的发送邮箱和接收邮箱都是我的163邮箱,原因是我刚开始测试的是QQ邮箱接受,但是万恶的网易把这个邮件当成垃圾邮件,发送不出去,会提示:

    (554, b'DT:SPM 163 smtp9,DcCowABXdex2kFtYogSVEQ....

    提示的url只指向:http://help.163.com/09/1224/17/5RAJ4LMH00753VB8.html

    谷歌了好久,也没有找到解决办法,于是乎就换成163邮箱来接受了,当然如果你看了这篇文章,你也解决了这个办法,那么请留言告诉我,谢谢


    效果图

    来一张我邮箱接受到的邮件的效果图吧

    列表内容

     

    如果你对这个代码感兴趣的话,或者你也想接受这个信息推送的话,留下的163邮箱吧,因为别的我怕发不出去(代码地址:点击查看)~~~~


    补充内容:python发送短信

    使用互亿无线的短信接口发送短信,只不过他是收费的,但是有30条的测试

    注册一个账号,将代码中的用户名和密码换成你自己的即可,另外我这里使用的是python3.4,官网上给的python样例代码时2.7,直接运行不好使,需要修改一些小地方,代码如下:

    #-*- coding:utf-8 -*-
    import http.client
    import urllib.request
    
    host  = '106.ihuyi.com'
    sms_send_uri = '/webservice/sms.php?method=Submit'
    
    #用户名是登录ihuyi.com账号名(例如:cf_demo123)
    account  = 'xxxxx'
    #密码 查看密码请登录用户中心->验证码、通知短信->帐户及签名设置->APIKEY
    password = 'xxxxxx'
    
    def send_sms(text, mobile):
        params = urllib.parse.urlencode({'account': account, 'password' : password, 'content': text, 'mobile':mobile,'format':'json' })
        headers = {'Content-type': 'application/x-www-form-urlencoded', 'Accept': 'text/plain'}
        conn = http.client.HTTPConnection(host, port=80, timeout=30)
        conn.request('POST', sms_send_uri, params, headers)
        response = conn.getresponse()
        response_str = response.read()
        conn.close()
        return response_str
    
    if __name__ == '__main__':
    
        mobile = '171xxxx1234'
        text = '您的验证码是:121254。请不要把验证码泄露给其他人。'
    
        print(send_sms(text, mobile))
    

    手机收到的短信如下:
    这里写图片描述



    个人微信公众号,欢迎关注
    这里写图片描述

     

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规