zoukankan      html  css  js  c++  java
  • 定时给ta讲笑话python3.x

    看到一篇文章——定时给ta讲笑话,挺有趣的,http://www.codeceo.com/article/python-talk-funny.html

    之前没有学过python,从网上下了个python3.4,把代码copy进去跑,老是有问题,这才知道python3.x和python2.x有很大不同。明显链接里面的是python2.x的

    做了若干修改,终于能成功发送了。代码如下:


    # -*- coding: utf-8 -*-
    '''
    Created on 2016年5月5日
    @author: mandala
    '''
    import urllib, json,sys,smtplib
    from urllib.request import *
    from email.mime.text import MIMEText
    
    #reload(sys)
    #sys.setdefaultencoding('utf-8')#避免中文编码问题
    
    mail_host="smtp.139.com"     #设置服务器
    mail_user="***@139.com"    #用户名
    mail_pass="***"       #口令 
    mailto_list=['**@139.com']     #邮件接受者:手机号+@139.com
    
    def send_mail(to_list,part1,sub,content):                
        #to_list:收件人;sub:主题;content:邮件内容;
        me=part1+"<"+mail_user+">"  #hello
        #me=part1
        msg = MIMEText(content,_subtype='plain',_charset='utf-8')#创建一个实例,这里设置为纯文字格式邮件编码utf8
        msg['Subject'] = sub    #设置主题
        #print(sub)
        #print(me)
        msg['From'] = me        #设置发件人
        msg['To'] = ";".join(to_list)  
        try:  
            s = smtplib.SMTP()             #实例化       
            s.connect(mail_host)           #连接smtp服务器
            s.login(mail_user,mail_pass)   #登陆服务器
            s.sendmail(me, to_list, msg.as_string()) #发送邮件
            s.close()  
            return True  
        except Exception as e:  
            print('a'+str(e))  
            return False
        
    if __name__ == '__main__': 
        appkey = "e2376cfbe3b27dff923ed61698839a67"
        url = 'http://apis.baidu.com/showapi_open_bus/showapi_joke/joke_text?page=1'
        req = urllib.request.Request(url)
        req.add_header("apikey", appkey)
        resp = urllib.request.urlopen(req)
        content = resp.read()
        if(content):
            json_result = json.loads(content.decode())
            content_list = json_result['showapi_res_body']['contentlist']
            minlen = 10000
            for item in content_list:
                if len(item['text'])<minlen:
                    first_title = item['title']
                    first_text = item['text']
                    minlen = len(item['text'])
            print('title:'+first_title)
            print('content:'+first_text)
            length = len(first_text)
            part1 = 'guessWho'
            part2 = first_title
            part3 = first_text
            print(part1,"+",part2,"+",part3)
            if send_mail(mailto_list,part1,part2,part3):  
                print("send msg succeed")
            else:  
                print("send msg failed")
        else:
            print("get joke error")




  • 相关阅读:
    read()系统调用的流程(转个贴)
    linux kernel reading
    开博第一篇
    让人崩溃的Visual C++ 2005 SP1 Redistributable Package (x86),为啥我下不下来?
    System Call on Linux 2.6 for i386(2) int 0x80与systementer
    http://www.netyi.net/in.asp?id=yuanxianping
    取Insert产生的ID
    递归触发器资料
    Commit Trans和Rollback Trans在有触发器操作时的区别
    转:安全配置SQL Server2000服务器
  • 原文地址:https://www.cnblogs.com/mandalalala/p/6798272.html
Copyright © 2011-2022 走看看