[PYTHON] Tweet die Wettervorhersage mit Bot Teil 2

Ja. Vergangener Artikel http://qiita.com/clarinet758/items/0142e88cd19a4246f308

http://weather.service.msn.com/data.aspx?src=vista&weadegreetype=C&culture=ja-JP&wealocations=wc:
Leider scheint das Update seit Mitte November 2016 nicht mehr aktualisiert worden zu sein. Irgendwie verursacht es das dritte, so dass das Update den Tee schlammig macht. Das neue Erfassungsziel ist OpenWeatherMap. Ich habe immer noch die Python 2-Serie verwendet. Es ist schmerzhaft. Referenz http://qiita.com/b-wind/items/06e19043a0cd70b10b03
http://qiita.com/nownabe/items/aeac1ce0977be963a740
http://qiita.com/sudnonk12/items/744fb48e378c05979952

Wenn Sie das Obige lesen, müssen Sie in Zukunft wahrscheinlich nichts mehr lesen.

Wenn Sie ein paar Informationen für Twitter wünschen, verwenden Sie eine der beiden? Wann,

  1. Current weather data Der Endpunkt ist `api.openweathermap.org/data/2.5/weather? Die folgende Option `. Es kann nur ein Fall im Status zum Zeitpunkt der letzten Aktualisierung abgerufen werden. Ich denke, dass dies verwendet wird, wenn das aktuelle Wetter ~ ist. Diesmal wollte ich das nicht, also ist es das hier.
  2. 5 day / 3 hour forecast Der Endpunkt ist `api.openweathermap.org/data/2.5/forecast ?? Die folgende Option `. Es scheint, dass Sie es für 5 Tage in Intervallen von 3 Stunden bekommen können. Sie können die Prognose für welchen Monat, Tag und welche Uhrzeit mit dem Wert dt_txt überprüfen. Darüber hinaus denke ich, dass es ein Teil ist, sich Gedanken darüber zu machen, wann Sie sich für "Informationen von 3 Stunden" auf "Wetter von morgen" beziehen sollten.

Beispielcode

weather


#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import datetime
import oat
import time
import urllib2
import json


class Weather3:
    def __init__(self, api_key, hour, name, code, tag):
        self.api_key = api_key
        self.day = [u'heute', u'Morgen'][hour == **].encode('utf-8')
        self.name = name.encode('utf-8')
        self.code = code
        self.indx = [-1]*25
        self.indx[*] = *
        self.f = self.indx[hour]
        self.tag = tag

    def get_json(self):
        url = 'http://api.openweathermap.org/data/2.5/forecast?id={0:}&APPID={1:}'.format(self.code, self.api_key)
        o = urllib2.urlopen(url)
        r = o.read()
        j = json.loads(r)
        return j

    def get_info(self):
        ind = self.f
        data = self.get_json()
        base = data['list'][ind]
        tenki = base['weather'][0]['main']
        t_max = str('{0:.2f}'.format(base['main']['temp_max']-273.15))
        t_min = str('{0:.2f}'.format(base['main']['temp_min']-273.15))
        return (tenki, t_max, t_min)

    def make_txt(self):
        d = self.get_info()
        temp = "{0:}von{1:}ら辺von天候は{2:}ist. Die maximale Temperatur beträgt{3:}Bei etwa Grad ist die niedrigste Temperatur{4:}Über den Abschluss.#{5:}"
        text = temp.format(self.day, self.name, d[0], d[1], d[2], self.tag)
        return text

    def tweet(self):
        message = self.make_txt()
#        print message
        oat.tweet(message)

    def run(self):
        self.tweet()
        time.sleep(5)

if __name__ == '__main__':
    target = [[u'Shinagawa', 1852140], [u'Funabashi', '1863905'], [u'Kumamoto', '1858421'], [u'Uji', '1849372']]
    jikan = datetime.datetime.now()
    flag = jikan.hour
    tag = jikan.microsecond

    for i in target:
        w = Weather3(oat.api_key, flag, i[0], i[1], tag)
        w.run()

token


#!/usr/bin/python
# -*- coding:UTF-8 -*-

from urllib import urlencode
from oauth2 import Client, Consumer, Token
import tweepy

#Twitter
consumer_key = "xxxxxx"
consumer_secret = "xxxxxxxxxxx"
user_key = "*****-xxxxxxxxxx"
user_secret = "xxxxxxxxx"
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(user_key, user_secret)
client = Client(Consumer(consumer_key, consumer_secret), Token(user_key, user_secret))
api = tweepy.API(auth)
ep = "https://api.twitter.com/1.1/statuses/update.json"

#OpenWeatherMap
api_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

def tweet(message):
    client.request(ep, 'POST', urlencode({'status': message}))


def reply(message, ids):
    client.request(ep, 'POST', urlencode({'status': message, 'in_reply_to_status_id': ids}))

Abhängig von der Zeit, in der Sie sich bewegen, hängt das Wetter von heute morgen und die Anzahl der Informationen, die Sie in den erfassten Informationen verwenden, davon ab, wie Sie sie verwenden. Außerdem habe ich -273.15 geschrieben, um die Temperatur von Kelvin in Chou umzuwandeln, aber es scheint, dass wenn Sie die Option aktivieren, wenn Sie den Endpunkt erreichen, sie in Chou zurückgegeben wird. Twitter Post Beispielbild http://www.nowshika.com/joso/img11110131.png

Recommended Posts

Tweet die Wettervorhersage mit Bot Teil 2
Kündigen Sie die Wettervorhersage (Regen usw.) von DM als Teil der Funktion des Bots an
Ich habe mit Python eine Bot-Wettervorhersage gemacht.
Zeigen Sie die heutige Wettervorhersage mit Shell-Skript an
Zeichnen Sie mit PyQtGraph Teil 5 ein Diagramm. Erhöhen Sie die Y-Achse
Erstellen Sie eine Tweet-Heatmap mit der Google Maps-API
Tweet die Niederschlagswahrscheinlichkeit als Teil der Funktion des Bots
Kratzwettervorhersage mit Python
[Teil 4] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
[Teil 1] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
[Teil 3] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
Erstellen Sie einen Twitter-BOT mit dem GoogleAppEngine SDK für Python
[Python] Ich habe versucht, LINE BOT die Wettervorhersage beantworten zu lassen
[Teil 2] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
Die Geschichte, wie man mit discord.py einen Fragenkasten-Bot erstellt
Spiele mit einer Schildkröte mit Schildkrötengrafiken (Teil 1)
Holen Sie sich das Wetter mit Python-Anfragen
Holen Sie sich das Wetter mit Python-Anfragen 2
Ich mochte den Tweet mit Python. ..
[LINE Bot] Ich bin ein Ranger! Teil 2
Ich möchte das Wetter mit LINE bot feat.Heroku + Python wissen
Finden Sie den optimalen Wert der Funktion mit einem genetischen Algorithmus (Teil 2)
Zählen Sie mit NetworkX den maximal verketteten Teil eines zufälligen Diagramms
Erstellen Sie einen Twitter-BOT-Dienst mit der GAE / P + Tweepy + RIOT-API! (Teil 1)
Erstellen Sie einen Twitter-BOT-Dienst mit der GAE / P + Tweepy + RIOT-API! (Teil 2)
Durchsuche das Labyrinth mit dem Python A * -Algorithmus
Aktienprognose mit TensorFlow (LSTM) ~ Aktienprognose Teil 1 ~
Machen wir einen Twitter-Bot mit Python!
Zeichnen Sie ein Diagramm mit PyQtGraph Part 1-Drawing
Machen Sie ein Thermometer mit Raspberry Pi und machen Sie es im Browser Teil 3 sichtbar
Ein Modell, das die Gitarre mit fast.ai identifiziert
Ich habe einen Stempelersatzbot mit Linie gemacht
Twittern Sie regelmäßig mit der Twitter-API in Go-Sprache
[Python] Holen Sie sich die Dateien mit Python in den Ordner
Machen Sie Twitter Trend Bot mit Heroku + Python
Finden Sie mit NumPy die Position über dem Schwellenwert
Erstellen Sie mit Minette für Python einen LINE BOT
Zeichnen Sie ein Diagramm mit den PyQtGraph Part 3-PlotWidget-Einstellungen
Folgen Sie der AR-Markierung mit einem 2-Achsen-Servo
Ich habe einen LINE Bot mit Serverless Framework erstellt!
Schritte zum Erstellen eines Twitter-Bots mit Python
Zeichnen Sie ein Diagramm mit den Einstellungen von PyQtGraph Part 4-PlotItem
Speichern Sie das Objekt in einer Datei mit pickle
Zeichnen Sie ein Diagramm mit PyQtGraph Teil 6 - Anzeigen einer Legende
Erstellen Sie mit Amazon Lex einen LINE WORKS-Bot
Web Scraping mit Python (Wettervorhersage)
Erstellen Sie ein Übersetzungswerkzeug mit dem Translate Toolkit
Mattermost Bot mit Python gemacht (+ Flask)
Fügen Sie eine Funktion hinzu, um dem Wetter heute mitzuteilen, dass der Bot locker ist (hergestellt von Python).
Aktienkursprognose mit TensorFlow (mehrschichtiges Perceptron: MLP) ~ Aktienprognose 2 ~
[AWS] Ich habe BOT mit LINE WORKS daran erinnert
Ich habe einen Twitter BOT mit GAE (Python) gemacht (mit einer Referenz)
Machen Sie mit LINE + Flask einen morphologischen Analyse-Bot
Schneiden Sie einen Teil der Zeichenfolge mit einem Python-Slice aus
So erstellen Sie ein Untermenü mit dem Plug-In [Blender]
Stellen wir uns den Raum mit Raspeltorte vor, Teil 1
Erstellen Sie einen BOT, der die Discord-URL verkürzt
Machen Sie LCD-Screenshots mit Python-LEGO Mindstorms
Wie man ein Schießspiel mit toio macht (Teil 1)