初入程序员世界(3)

发布于 2017-10-25  2,154 次阅读


同样是焦糖招新题,是一个为了实现空气污染指数推送的python小程序

空气污染指数推送

思路

使用python完成主程序编写,用git送到服务器,使用cronjob进行定时任务。其中主程序编写的两个关键,一是AQI值的获取,二是pushbullet的使用。

开始

AQI值的获取

AQI的来源为,里面提供了它的api,并且给出了一个公用测试key。

在网上学习了api的使用方法后,下面就是进行程序的第一部分的编写。import requests,然后使用接口。将数据存入一个列表。接下来可以对列表进行处理,这里纯粹看个人喜好和习惯。我是将列表转换为字符串,再对字符串进行处理。

处理前后的对比:

数据的处理

首先,在费了一些功夫之后发现这个获取到的json是一个list,里面存放了dict数据。
所以在推送的时候赋到一个str里面去,方便格式和内容的修改。
然后是有一个aqi的判定,大于150,或小于50有额外提示,这时候选择直接先取出(遍历)list,再用dict的操作方法取出aqi值,进行判断。

Pushbullet的使用

安装、登录

先在电脑、手机上安装pushbullet客户端,但是登录必须翻墙,登录google账号,这里不再赘述。登录完成后显示应该是这样的(我顺便安装了火狐的扩展,因为十分好用)。

Pushbullet API的使用

同样的,要使用pushbullet,必须用提供的api。进入pushbullet的官网,在Settings里下拉可以看到账号的Access Tokens。

然后我选择了python已有的PushBullet 库,在cmd里pip install pushbullet.py,就可以使用pushbullet了。使用方法和上面的没什么大区别,只是从request变为了post(push)了。

接下来我自选加了一个获取时间的小程序,没什么好说的。

Github

接下来将程序push到github上方便服务器的编写。

服务器

安装

先总结一下上面用到的需要安装的库,已经接下来要用的。

  1. pushbullet
  2. request(似乎是已经自带了?还是我以前安装过)

将程序拉到服务器

使用github将上传的文件拉到本地,比如我选择拉到/usr/local/Air-Pollution-Monitor。值得注意的是,如果想要先测试一下,需要在文件头标注#!/usr/bin/python3,并且用chmod 755 给予权限。

cronjob的使用

输入crontab -e,接下来选择编译器,我选择的是(3.)vi。然后开始输入任务,

比如我:


0 6,14,19 * * * /usr/local/Air-Pollution-Monitor/Air_Pollution_Monitor.py

理论上来说应该就可以使用了。


Fly me to the moon