[PYTHON] Ich habe versucht, die Standortinformationen des Odakyu-Busses zu erhalten

Hintergrund

Ich habe ein LCD mit einem Himbeerkuchen angebracht (geplant als separater Artikel) Manchmal ist der Morgenbus zu spät, manchmal ist es pünktlich Ich fragte mich, wann ich die Tür verlassen sollte Informationen zum Odakyu-Busbetrieb Zu kratzen und anzuzeigen.

Gliederung

Ich habe es mit Beatiiful Soup abgekratzt. Mit nur einem CSS-Selektor erhalten Sie die geschätzte Ankunftszeit Es funktioniert einfach nicht, ist es die folgende Krafttechnik? von Es ist ein sehr schmutziger Code geworden.

Code

from bs4 import BeautifulSoup as BS
import urllib.request as req

def busstop():
    url="https://odakyu.bus-navigation.jp/wgsys/wgs/bus.htm?tabName=searchTab&selectedLandmarkCatCd=&from=[Bushaltestelle zum Einsteigen]&fromType=1&to=[Aussteigen aus der Bushaltestelle]&toType=1&locale=ja&fromlat=&fromlng=&tolat=&tolng=&fromSignpoleKey=&routeLayoutCd=&bsid=1&fromBusStopCd=&toBusStopCd=&mapFlag=false&existYn=N&routeKey=&nextDiagramFlag=&diaRevisedDate=&timeTableDirevtionCd="
    res=req.urlopen(url)
    soup=BS(res,"html.parser")
    #data=soup.select("#buslist > div > div>table:nth-of-type(2)")
    result=[]

    table=soup.select_one("table:nth-of-type(2)")

    tr_list=table.find_all("tr")

    current=0
    for tr in tr_list:
        result_row=[]
        td_list=tr.find_all(["td","th"])
        if current<4:
            for td in td_list:
                cell = td.get_text()
                result_row.append(cell)
                if current==3:
                    result_list=[]
                    result_list=result_row
                current=current+1
        else:
            pass

    final_arrange_list=[]

    if final_arrange_list==None:
       return("NA")
    else:
       final_arrange_list=result_list[1].split(' ')
       return(final_arrange_list[1])
       print(final_arrange_list[1])

Der anrufende Teil ist übrigens

   bustime_dt=datetime.strptime(busstop(),'%H:%M')
   nowtime_dt=datetime.strptime(time.ctime(time.time()),'%a %b %d %H:%M:%S %Y')
   next_bus_time=bustime_dt-nowtime_dt
   payload7="Next bus in "+str(next_bus_time.seconds/60)
   payload8="Next bus@ "+str(busstop())
   print(payload7)
   print(payload8) 
   lcd_string(payload7, LCD_LINE_1)
   lcd_string(payload8, LCD_LINE_2)

Es ist ziemlich klobig. Die voraussichtliche Ankunftszeit des Busses beträgt also nur Stunden Wenn Sie einfach von der UNIX-Zeit abziehen, ist die Anzahl der Jahre negativ. Ich benutze sowieso nur den Betrag, also teile ich ihn.

Ich denke, ich kann sie etwas besser schreiben. .. Wenn Sie sich vorerst bewegen, ist es teilbar.

Recommended Posts

Ich habe versucht, die Standortinformationen des Odakyu-Busses zu erhalten
Ich habe versucht, die Filminformationen der TMDb-API mit Python abzurufen
Ich habe versucht, die Spacha-Informationen von VTuber zu visualisieren
Ich möchte Betriebsinformationen über die Yahoo-Route erhalten
Ich habe versucht, verschiedene Informationen von der Codeforces-API abzurufen
Ich habe versucht, den Index der Liste mithilfe der Aufzählungsfunktion abzurufen
PhytoMine-I hat versucht, mit Python die genetischen Informationen der Pflanze zu erhalten
Ich habe versucht, die Trapezform des Bildes zu korrigieren
Ich habe versucht, die Texte von Hinatazaka 46 zu vektorisieren!
Ich habe versucht, die Trefferergebnisse von Hachinai mithilfe der Bildverarbeitung zu erhalten
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
Ich habe versucht, das RSS des Top-Songs des iTunes Store automatisch abzurufen
Ich habe versucht, die Grundform von GPLVM zusammenzufassen
Ich habe versucht, den negativen Teil von Meros zu löschen
[Python] Ich habe versucht, Json von Tintenfischring 2 zu bekommen
Ich habe versucht, die Stimmen der Sprecher zu klassifizieren
Ich habe versucht, die String-Operationen von Python zusammenzufassen
Ich habe versucht, die Entropie des Bildes mit Python zu finden
[Pferderennen] Ich habe versucht, die Stärke des Rennpferdes zu quantifizieren
Ich habe versucht, mit TensorFlow den Durchschnitt mehrerer Spalten zu ermitteln
Ich habe versucht, die Zugverspätungsinformationen mit LINE Notify zu benachrichtigen
Ich habe versucht, die Informationen des Webs mit "Requests" und "lxml" abzurufen.
Ich möchte die Standortinformationen von GTFS Realtime auf Jupyter zeichnen! (Mit Ballon)
[Python] Ich habe versucht, die folgende Beziehung von Twitter zu visualisieren
Ich habe versucht, die Eigenschaften der neuen Informationen über mit dem Corona-Virus infizierte Personen mit Wordcloud zu visualisieren
[Maschinelles Lernen] Ich habe versucht, die Theorie von Adaboost zusammenzufassen
Ich habe versucht, das lokale Minimum der Goldstein-Preis-Funktion zu bekämpfen
Keras Ich möchte die Ausgabe einer beliebigen Ebene erhalten !!
Ich habe versucht, den Ball zu bewegen
Ich habe versucht, den Abschnitt zu schätzen.
Ich habe versucht, die Informationen der ASPX-Site, die mit Selenium IDE ausgelagert wird, so programmlos wie möglich abzurufen
Ich habe versucht, eine Aktivität zu erstellen, die gemeinsam die Positionsinformationen festlegt
Ich möchte den Namen der ausgeführten Funktion / Methode erhalten
[Linux] Ich habe versucht, die Ressourcenbestätigungsbefehle zusammenzufassen
Ich habe versucht, mit Pandas eine Pferderenn-Datenbank zu erstellen
Ich habe versucht, die Bewässerung des Pflanzgefäßes mit Raspberry Pi zu automatisieren
Ich habe versucht, das SD-Boot-Image von LicheePi Nano zu erstellen
Ich habe mir die Metainformationen von BigQuery angesehen und versucht, sie zu verwenden
Ich habe versucht, mit Boto3 eine Liste der AMI-Namen zu erhalten
Ich habe am Wochenende versucht, mit Bitcoin Systre zu beginnen
Ich habe versucht, die Größe des logischen Volumes mit LVM zu erweitern
Ich habe versucht, die häufig verwendete Implementierungsmethode von pytest-mock zusammenzufassen
Ich habe versucht, die Effizienz der täglichen Arbeit mit Python zu verbessern
[Python] Ich habe versucht, mithilfe der YouTube-Daten-API verschiedene Informationen abzurufen!
Ich habe versucht, den allgemeinen Zustand der VTuber-Kanalbetrachter zu visualisieren
Ich habe den asynchronen Server von Django 3.0 ausprobiert
Ich habe versucht, den Befehl umask zusammenzufassen
Ich versuchte das Weckwort zu erkennen
Ich habe versucht, mit Hy anzufangen
Ich habe versucht, die grafische Modellierung zusammenzufassen.
Ich habe versucht, das Umfangsverhältnis π probabilistisch abzuschätzen
Ich habe versucht, die COTOHA-API zu berühren
Ich habe versucht, eine Site zu erstellen, mit der die aktualisierten Informationen von Azure einfach angezeigt werden können
Ich habe versucht, die Altersgruppe und die Ratenverteilung von Atcoder zu visualisieren
Ich habe versucht, die Beispielnachrichten zur Geschäftsintegration in Amazon Transcribe zu übertragen
zoom Ich habe versucht, den Grad der Aufregung der Geschichte auf der Konferenz zu quantifizieren
Ich habe versucht, die Ähnlichkeit der Frageabsicht mit Doc2Vec von gensim abzuschätzen