[Python] Ich habe versucht, LINE BOT die Wettervorhersage beantworten zu lassen

Einführung

Ich habe tenki.jp abgekratzt und die Wettervorhersage in den Linebot aufgenommen. https://tenki.jp/

Umgebung

windows python 3.6.4

Zeichnung zuerst abgeschlossen

IMG_3332.jpg

Bereiten Sie sich zunächst auf das Schaben vor

    #URL der Zielwebsite
    url = "https://tenki.jp/forecast/6/30/6200/27100/"
    #Instanzerstellung
    res = urllib.request.urlopen(url)
    soup = BeautifulSoup(res, 'html.parser')

'html.parser' ist wie ein Filter, der zum Scraping benötigt wird.

Schaben nach Klasse

weather = soup.find_all("p", class_="weather-telop")
    temp = soup.find_all("dd", class_="high-temp temp")
    low_temp = soup.find_all("dd", class_="low-temp temp")
    tds = soup.select("tr.rain-probability td")
    hini = soup.find_all("h3", class_="left-style")

Von oben erfolgt das Schaben in der Reihenfolge "Wetter, Temperatur, Mindesttemperatur, Niederschlagswahrscheinlichkeit, Datum". Ich muss mich daran gewöhnen, find_all und select-Methoden richtig zu verwenden, aber ich dachte, dass es kein Problem geben würde, wenn ich nur select verwenden würde.

In Vorbereitung auf die Ausgabe

    tenki = hini[0].getText() + "\n\n" + weather[0].getText()
    kion = "\n am besten" + temp[0].getText()
    low_kion = "Minimum" + low_temp[0].getText()
    rain1 = "\n\n Niederschlagswahrscheinlichkeit\n00-06:00" + tds[0].getText()
    rain2 = "\n06-12 Uhr" + tds[1].getText()
    rain3 = "\n12-18:00" + tds[2].getText()
    rain4 = "\n18-24:00" + tds[3].getText()

Alle abgekratzten Gegenstände werden als Liste erfasst. Diesmal waren im Grunde genommen die Inhalte von [0] die Daten von heute und die Inhalte von [1] die Daten von morgen, so dass es relativ einfach war.

Überblick

import urllib.request
from bs4 import BeautifulSoup

def getw():
    #URL der Zielwebsite
    url = "https://tenki.jp/forecast/6/30/6200/27100/"
    #Instanzerstellung
    res = urllib.request.urlopen(url)
    soup = BeautifulSoup(res, 'html.parser')
    #Zielelement
    #das heutige Wetter
    weather = soup.find_all("p", class_="weather-telop")
    temp = soup.find_all("dd", class_="high-temp temp")
    low_temp = soup.find_all("dd", class_="low-temp temp")
    tds = soup.select("tr.rain-probability td")
    hini = soup.find_all("h3", class_="left-style")


    tenki = hini[0].getText() + "\n\n" + weather[0].getText()
    kion = "\n am besten" + temp[0].getText()
    low_kion = "Minimum" + low_temp[0].getText()
    rain1 = "\n\n Niederschlagswahrscheinlichkeit\n00-06:00" + tds[0].getText()
    rain2 = "\n06-12 Uhr" + tds[1].getText()
    rain3 = "\n12-18:00" + tds[2].getText()
    rain4 = "\n18-24:00" + tds[3].getText()

    
    a = tenki+kion+low_kion+rain1+rain2+rain3+rain4
    return a

Laden Sie danach diese Funktion in die Datei main.py von linebot.

text_in = event.message.text

    if "heute" in text_in:
        line_bot_api.reply_message(event.reply_token,TextSendMessage(text=scw.getw()))

Wenn der Benutzer ein Zeichen eingibt, das das Wort "heute" enthält, wird das heutige Wetter angezeigt. Dann bereitstellen und abschließen! IMG_3332.jpg

Schließlich

Ich sollte in der Lage sein, klüger zu schreiben, also werde ich es als nächstes als Problem belassen. Da es sich um einen BOT handelt, der überhaupt nicht interessant ist, können viele Dinge getan werden, z. B. das Hinzufügen von Arrangements wie "Haben Sie einen Regenschirm?". Wenn es regnet, lassen wir dies als nächste Aufgabe.

Es spielt überhaupt keine Rolle, aber mein Rücken tut weh.

Recommended Posts

[Python] Ich habe versucht, LINE BOT die Wettervorhersage beantworten zu lassen
Ich möchte das Wetter mit LINE bot feat.Heroku + Python wissen
Ich möchte eine Nachricht von Python an LINE Bot senden
Tweet die Wettervorhersage mit Bot
Tweet die Wettervorhersage mit Bot Teil 2
[Python] Ich werde FTP auf den FTP-Server hochladen.
Ich möchte den Fortschritt in Python anzeigen!
Ich möchte den Dateinamen, die Zeilennummer und den Funktionsnamen in Python 3.4 erhalten
Ich habe versucht, die Literatur des neuen Corona-Virus mit Python automatisch an LINE zu senden
Ich habe versucht, die in Python installierten Pakete grafisch darzustellen
[Python] Versuchen Sie, die coole Antwort auf das FizzBuzz-Problem zu lesen
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Ich habe versucht, Soma Cube mit Python zu lösen
Ich wollte die Python-Bibliothek von MATLAB verwenden
Ich möchte mit Python-Datenklasse nach hinten erben
Ich habe versucht, LINE BOT mit Python und Heroku zu machen
[Python] Ich habe versucht, die Top 10 der Lidschatten grafisch darzustellen
Ich möchte in Python schreiben! (3) Verwenden Sie Mock
Ich habe versucht, das Problem mit Python Vol.1 zu lösen
Ich hatte das Gefühl, dass ich den Python-Code nach C ++ 98 portiert habe.
Der einfachste Linienbot der Welt, um Gewicht zu verlieren
Ich möchte R-Datensatz mit Python verwenden
Ich habe versucht, die String-Operationen von Python zusammenzufassen
Fügen Sie eine Funktion hinzu, um dem Wetter heute mitzuteilen, dass der Bot locker ist (hergestellt von Python).
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Ich möchte initialisieren, wenn der Wert leer ist (Python)
Ich habe versucht zu simulieren, wie sich die Infektion mit Python ausbreitet
[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
Ich möchte die von LINE an S3 gesendeten Fotos speichern
Ich habe versucht, die Zugverspätungsinformationen mit LINE Notify zu benachrichtigen
maya Python Ich möchte die gebackene Animation wieder reparieren.
Was ich getan habe, um die Python2 EOL mit Zuversicht zu begrüßen
Ich habe versucht, die Uhrzeit und das heutige Wetter anzuzeigen
[Python] Ich habe versucht, die folgende Beziehung von Twitter zu visualisieren
[Teil 2] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
Ich wusste nicht, wie ich die [Python] für die Anweisung verwenden sollte
Kratzwettervorhersage mit Python
Ich habe versucht, die Mail-Sendefunktion in Python zu implementieren
Ich möchte die Natur von Python und Pip kennenlernen
Ich habe versucht, die Unterschiede zwischen Java und Python aufzuzählen
Ich habe versucht, das Python-Skript unter Windows 10 von 2.7.11 auf 3.6.0 zu ändern
Ich habe die Python-Quelle heruntergeladen
So erstellen Sie einen interaktiven LINE BOT 004 (beantworten Sie den Stichtag eines börsennotierten Unternehmens)
Ich habe versucht, mein eigenes High-School-Mädchen BOT im Rinna-Stil mit LINE BOT (Python & Heroku) zu machen.
Ich habe versucht, den Inhalt jedes von Python pip gespeicherten Pakets in einer Zeile zusammenzufassen
[Python] Ich habe versucht, mit argparse ein einfaches Programm zu erstellen, das in der Befehlszeile funktioniert
Teil 1 Ich habe die Antwort auf das Referenzproblem geschrieben, wie man in Python in Echtzeit offline schreibt
[Python] Ich habe einen Line-Bot erstellt, der zufällig nach englischen Wörtern fragt
Ich habe versucht, die Anfängerausgabe des Ameisenbuchs mit Python zu lösen
[Einführung in Python] Ich habe die Namenskonventionen von C # und Python verglichen.
Ich möchte den Anfang des nächsten Monats mit Python ausgeben
Ich möchte Python GUI ausführen, wenn Raspberry Pi startet
Ich habe den Code geschrieben, um den Brainf * ck-Code in Python zu schreiben
Ich habe versucht, die Videowiedergabezeit anzuzeigen (OpenCV: Python-Version)
Ich wollte das ABC164 A ~ D-Problem mit Python lösen
[Einführung] Ich möchte mit Python einen Mastodon-Bot erstellen! 【Anfänger】