[PYTHON] Grattage Web pour les notifications d'avertissement météo.

Merci de me faire part de l'alerte sur Twitter.

Motivation

je l'ai fait

Je suis un lycéen. L'école sera fermée en raison d'une alarme. C'est trop excitant de vérifier les alertes une par une sur la diffusion de données NHK qui ne répond pas, alors j'aimerais que vous soyez automatiquement averti sur Twitter. Oui.

problème

Il n'y a pas du tout d'API d'alarme. Je l'ai trouvé quand je le cherchais, mais apparemment il semble que j'utilise un protocole pétillant comme "Habusabu Pab Bab", ce qui m'est impossible.

...

Grattage Web !!

Ça y est !!

environnement

C'est comme ça.

Sauce soja

# coding: UTF-8
#!/usr/bin/env python3

from urllib import request
from bs4 import BeautifulSoup
from datetime import datetime
import time
import twitter

OK = '33[92m'
WARN = '33[93m'
NG = '33[91m'
END_CODE = '33[0m'

api = twitter.Api(consumer_key='Oh ton', consumer_secret='Secret', access_token_secret='Je vais le mettre ici')

#URL d'accès
url = "https://typhoon.yahoo.co.jp/weather/jp/warn/Quelque chose/nombre/"


def Getter(soup):
    Summaryarea = soup.findAll("div", class_="warnSummary_box")
    # print(Summaryarea[0].dl)
    Li = Summaryarea[0].dl.dd.ul.li
    # adv = Li.find("span",class_="icoAdvisory")#Notification d'alerte
    adv = Li.find("span", class_="icoWarning")  #Remarquer
    if adv:
        # Yes
        # print("OK")
        return 1
    else:
        # No
        # print("NO")
        return 0


def Twit(state):
    nowtime = datetime.now()
    NowStr = str(nowtime.hour) + "Temps" + str(nowtime.minute) + "Minutes maintenant"
    Txt = ""
    if state:
        Txt = "\n Il semble qu'une alarme ait été émise dans la ville d'une manière ou d'une autre. .. ..\n Je ne suis pas content car je suis en vacances scolaires! !!"
    else:
        Txt = "\n Il semble qu'il n'y ait aucun avertissement dans la ville.\n Arrêtez l'étrange malchance et allez vite à l'école."
    status = api.PostUpdate("[Système de notification automatique d'alerte météo]\n" + NowStr + Txt)
    print(status.text)


def Coloring(txt, code):
    return "\033[%sm%s\033[0m" % (code, txt)


def main():
    while 1:
        print("Now " + ntStr)
        print("Its time!")

        #Lis
        html = request.urlopen(url).read()

        soup = BeautifulSoup(html, "html.parser")
        Twit(Getter(soup))
        if Getter(soup):
            #Avec une alarme
            print(Coloring("!!!!WARNING!!!!", "31"))
        else:
            #Ne reçois pas d'alarme
            print(Coloring("ALLGREEN", "32"))
        time.sleep(60 * 3)


if __name__ == "__main__":
    main()

résultat

Screenshot_20170723_003600Edited.png

Je peux le faire.

Bonnes vibrations.

Points d'amélioration

Associez-le à Razpai pour verrouiller la maison lorsqu'une alarme est émise www

Recommended Posts

Grattage Web pour les notifications d'avertissement météo.
Web scraping pour les débutants en Python (1)
Web scraping pour les débutants en Python (4) -1
raclage Web
Grattage WEB avec Python (pour mémo personnel)
[Pour les débutants] Essayez le web scraping avec Python
grattage Web (prototype)
Web scraping avec Python (prévisions météo)
Web scraping pour les débutants en Python (1) Version améliorée
Analyse de données pour améliorer POG 1 ~ Web scraping avec Python ~
Premiers pas avec le Web Scraping
Scraping Web pour débutants avec Python (4) --2 Scraping sur Cloud Shell
Web scraping avec python + JupyterLab
Enregistrez des images avec le web scraping
Technologie de grattage WEB et préoccupations
Compromis dans le scraping et l'exploration Web
Web scraping avec Selenium (Python)
Scraping prévisions météorologiques avec python
Web scraping à l'aide d'AWS lambda
A propos de l'avertissement "Compilé pour ~" de mod_wsgi
[Python + Selenium] Conseils pour le grattage
Web scraping débutant avec python
Bibliothèque de scraping Web utilisant des algorithmes Scrapely
Grattage de bande sur une seule ligne avec du tsé
Etudier le web scraping dans le but d'extraire des données de Filmarks # 2