Python实例---接入笑话API+发送邮件+云主机crontab定期执行

本例的思路来源于网上,但网上执行步骤讲解的不够清楚,尤其实现这一系列的步骤中,会有很多坑,今天就详细说一下,给想玩一下的朋友作个参考。

首先,第一步是如何从免费笑话api接口下载到笑话的文本,api大家都知道是应用程序接口,即我们可以发送请求、获得数据。我选择iteys,有请求方法示例,

用Python实现如下:需要载入包,

import sys, urllib, urllib2, json
import random

用urllib2发送请求和获得数据,因为从接口取出的数据默认是josn格式(如何解析json请参考我的另一篇博客),需要解析成Python支持的dic格式,通过生成随机数,用以拼接请求的url实现随机翻页效果,代码如下:

page_num = random.randint(1,500)

url = ‘http://api.1-blog.com/biz/bizserver/xiaohua/list.do?page=%d‘%page_num
req = urllib2.Request(url)
resp = urllib2.urlopen(req)
content = resp.read()
if (content):
        print ‘content ok‘
        #print content
#解析json串
dic_str = json.loads(content)

接下来通过解析json把每一则笑话的title(json串对应的字段问author)和content,拼接起来,生成随机数实现随机抽取10条笑话,

代码如下:

num = random.randint(0,9)
for i in range(0,10):
        joke_str += ‘title:‘ + dic_str[‘detail‘][num + i][‘author‘] + ‘\n‘ + ‘content:‘ + dic_str[‘detail‘][num + i][‘content‘] + ‘\n‘ + ‘---‘*20 + ‘\n‘
joke_str += u‘来源:ITeye‘

其次,进行发送邮件的代码编写,经过上一步已经获得要发送的内容了(joke_str),脚本发送邮件有比较固定的思路:调用smtplib模块,smtp服务器连接、smtp服务器登录、设置加密传输,smtp服务器发送,smtp服务器断开连接,第一个坑出现了–邮箱的问题:我先后尝试了qq邮箱和163邮箱,qq邮箱一定记得开启smpt服务,并且会获得一个独立的密码,smtp服务器登录要用这个独立密码,163邮箱是默认开通的,且登录密码就是邮箱账号密码即可。代码及tips如下:

import smtplib
import string

HOST=‘smtp.163.com‘
SUBJECT=‘happy new day~~~‘
TO=[‘收信邮箱1‘,‘收信邮箱2‘,‘收信邮箱x‘]#实现群发功能
FROM=‘[email protected]‘
text=joke_str
BODY=string.join((
    ‘From: %s‘ %FROM,
    ‘To: %s‘ %TO,
    ‘Subject: %s‘ %SUBJECT,
    ‘‘,
    text
    ),‘\r\n‘)

try:
    server=smtplib.SMTP()
    server.connect(HOST,‘25‘)
    server.starttls()
    server.login(‘***@163.com‘,‘password‘)
    for item in TO:
        server.sendmail(FROM,item,BODY)#sendmail 发送的内容为string类型,body/msg,as_string()
    server.quit()
    print ‘邮件发送成功~‘
except Exception,e:
    print ‘失败‘+str(e)

最后,发送邮件脚本完成后,就差一步了,发送邮件这种简单粗暴的活,当然不能手动来了。。。,这一步需要你有一个云主机服务器,这样我们就可以把脚本挂在服务器下,定时执行,岂不美哉??~~,我用的是Ubuntu14.04,可以开启crontab服务,步骤如下:1、设置定时任务,执行crontab -e命令编辑,2、crontab -e格式参照Linux运维工程师的技术博客。3、重启service crontab restart,查看crontab服务,执行crontab -l如果出现如下图所示表示设置成功,第二个坑:时区的问题,云主机默认的是UTC(世界时区),所以定时的时候,北京时间要减去8小时。。,

经过以上步骤,这个实例就完成了~

时间: 2024-10-10 16:44:42

Python实例---接入笑话API+发送邮件+云主机crontab定期执行的相关文章

openstack 调用API 实现云主机的IO 控制,CGroup 策略

# vim: tabstop=4 shiftwidth=4 softtabstop=4 # Copyright (c) 2011 X.commerce, a business unit of eBay Inc. # Copyright 2010 United States Government as represented by the # Administrator of the National Aeronautics and Space Administration. # All Righ

磁盘文件监控(Java)并发送邮件通知、系统定期执行的办法

以下是通过xml文件进行的监控路径.文件以及邮件信息的配置,读取xml文件使用的是三方jar包:dom4j 收发邮件采用的是最普通的javamail,需要两个jar包,mail.jar和activition.jar 关键代码如下: public boolean sendHtmlMail(MailSenderInfo mailInfo){ // 判断是否需要身份认证 MyAuthenticator authenticator = null; Properties pro = mailInfo.ge

Python批量给云主机配置安全组

这几年对运维人员来说最大的变化可能就是公有云的出现了,我相信可能很多小伙伴公司业务就跑在公有云上, 因为公司业务关系,我个人接触公有云非常的早,大概在12年左右就是开始使用亚马逊云,后来逐渐接触到国内的阿里,腾讯云等,随着公司业务往国内发展,这几年我们也使用了很多国内的公有云厂商,所以在云运维方面也积累了一些经验,从传统的物理机到公有云运维,我个人认为最大的问题就是你能不能用公有云的思路去思考去实现一个安全稳定.可伸缩和经济的业务构架,云运维是有别与传统运维的,比如说了解公有云的都知道安全组的概

Openstack之路(六)创建云主机实例

创建云主机网络 在控制节点上,加载admin凭证来获取管理员能执行的命令访问权限 [[email protected] ~]# source admin-openrc 创建网络 [[email protected] ~]# openstack network create --share --external --provider-physical-network provider --provider-network-type flat provider +------------------

五十二.用户配额管理 云主机类型管理 、 镜像管理 网络管理 案例和实例管理 、 安装额外计算节点

1.用户和配额管理 创建myproject项目 通过Horizon创建user1用户 通过CLI创建user2用户,练习相关用户管理命令 通过Horizon和CLI对myproject进行配额调整 通过命令创建myproject项目 stack ~]# source ~/keystonerc_admin  //初始化环境变量 admin)]# openstack project create myproject 通过命令创建user2用户 admin)]# openstack user crea

巧用命令行工具UCloud CLI,轻量操作API管理云资源

截止目前,UCloud已提供Python/Java/Golang等不同语言的API SDK.为进一步降低用户的运维人力投入,又推出了基于Golang SDK的命令行工具CLI(Command Line Interface),提供轻量化的API命令行调用方式,并在GitHub开源(https://github.com/ucloud/ucloud-cli).CLI的命令行交互方式更符合研发运维的操作习惯,并且一些典型使用场景通过CLI也更容易代码化的沉淀和维护. 下面是一些用户遇到的实际场景, 用C

【转载】python实例手册

今天西爬虫的时候遇到了问题,在网上不停地查找资料,居然碰到两篇好文章: 1.python实例手册   作者:没头脑的土豆 另一篇在这:shell实例手册 python实例手册 #encoding:utf8 # 设定编码-支持中文 0说明 手册制作: 雪松 更新日期: 2013-12-19 欢迎系统运维加入Q群: 198173206 # 加群请回答问题 请使用"notepad++"打开此文档,"alt+0"将函数折叠后方便查阅 请勿删除信息,转载请说明出处,抵制不道德

python实例手册

python实例手册 #encoding:utf8 # 设定编码-支持中文 0说明 手册制作: 雪松 更新日期: 2013-12-19 欢迎系统运维加入Q群: 198173206 # 加群请回答问题 请使用"notepad++"打开此文档,"alt+0"将函数折叠后方便查阅 请勿删除信息,转载请说明出处,抵制不道德行为. 错误在所难免,还望指正! # python实例手册下载地址: http://hi.baidu.com/quanzhou722/item/cf447

2013年十大免费云空间排行榜-给开发者建站用的免费云主机

云空间也可以叫做云平台,是以云计算技术而开发的网络服务平台,云计算平台可以划分为3类:以数据存储为主的存储型云平台,以数据处理为主的计算型云平台以及计算和数据存储处理兼顾的综合云计算平台. 云空间与传统的虚拟主机相比有非常大的不同,主要表现在空间管理方法.代码运行方式和应用开发等方面有非常大的不同,很多人在使用云空间过程会出现这样或那样的问题,多数是因为云空间对程序的要求不同而导致的. 严格的来说,就现有的云计算空间环境和条件,云空间还不适合用于专门的建站用途.当前使用云空间建站遇到的一个最大的