[PYTHON] J'ai essayé d'obtenir les informations de localisation du bus Odakyu

Contexte

J'ai attaché un écran LCD avec une tarte aux framboises (prévu pour être un article séparé) Parfois le bus du matin est en retard, parfois il est à l'heure Je me demandais quand quitter la porte, alors Informations sur le fonctionnement du bus Odakyu Pour gratter et afficher.

Contour

Je l'ai gratté avec une soupe magnifique. Avec juste un sélecteur CSS pour obtenir l'heure d'arrivée estimée Cela ne fonctionne pas, est-ce la technique de puissance suivante? de C'est devenu un code très sale.

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=[Arrêt de bus pour monter]&fromType=1&to=[Descendre de l'arrêt de bus]&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])

Au fait, la partie appelante est

   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)

C'est assez maladroit. L'heure d'arrivée estimée du bus n'est que de quelques heures, donc Si vous soustrayez simplement de l'heure UNIX, le nombre d'années sera négatif, Je n'utilise que le montant de toute façon, alors je le divise.

Je pense que je peux les écrire un peu mieux. .. Si vous déménagez pour le moment, c'est divisible.

Recommended Posts

J'ai essayé d'obtenir les informations de localisation du bus Odakyu
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
J'ai essayé de visualiser les informations spacha de VTuber
Je veux obtenir des informations sur le fonctionnement de Yahoo Route
J'ai essayé d'obtenir diverses informations de l'API codeforces
J'ai essayé d'obtenir l'index de la liste en utilisant la fonction énumérer
PhytoMine-I a essayé d'obtenir les informations génétiques de la plante avec Python
J'ai essayé de corriger la forme trapézoïdale de l'image
J'ai essayé de vectoriser les paroles de Hinatazaka 46!
J'ai essayé d'obtenir les résultats de Hachinai en utilisant le traitement d'image
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
J'ai essayé d'obtenir automatiquement le RSS de la chanson la plus populaire de l'iTunes Store
J'ai essayé de résumer la forme de base de GPLVM
J'ai essayé d'effacer la partie négative de Meros
[Python] J'ai essayé d'obtenir Json de squid ring 2
J'ai essayé de classer les voix des acteurs de la voix
J'ai essayé de résumer les opérations de chaîne de Python
J'ai essayé de trouver l'entropie de l'image avec python
[Courses de chevaux] J'ai essayé de quantifier la force du cheval de course
J'ai essayé de trouver la moyenne de plusieurs colonnes avec TensorFlow
J'ai essayé de notifier les informations de retard de train avec LINE Notify
J'ai essayé d'obtenir les informations du Web en utilisant "Requests" et "lxml"
Je veux tracer les informations de localisation de GTFS Realtime sur Jupyter! (Avec ballon)
[Python] J'ai essayé de visualiser la relation de suivi de Twitter
J'ai essayé de visualiser les caractéristiques des nouvelles informations sur les personnes infectées par le virus corona avec wordcloud
[Apprentissage automatique] J'ai essayé de résumer la théorie d'Adaboost
J'ai essayé de combattre le minimum local de la fonction Goldstein-Price
Keras Je veux obtenir la sortie de n'importe quelle couche !!
J'ai essayé de déplacer le ballon
J'ai essayé d'estimer la section.
J'ai essayé d'obtenir les informations du site .aspx qui est paginé à l'aide de Selenium IDE aussi sans programmation que possible.
J'ai essayé de faire une activité qui définit collectivement les informations de position
Je veux obtenir le nom de la fonction / méthode en cours d'exécution
[Linux] J'ai essayé de résumer les commandes de confirmation des ressources
J'ai essayé d'obtenir une base de données sur les courses de chevaux en utilisant Pandas
J'ai essayé d'automatiser l'arrosage du pot avec Raspberry Pi
J'ai essayé de créer l'image de démarrage SD de LicheePi Nano
J'ai regardé les méta-informations de BigQuery et essayé de les utiliser
J'ai essayé d'obtenir une liste de noms AMI en utilisant Boto3
J'ai essayé de démarrer avec Bitcoin Systre le week-end
J'ai essayé d'agrandir la taille du volume logique avec LVM
J'ai essayé de résumer la méthode de mise en œuvre fréquemment utilisée de pytest-mock
J'ai essayé d'améliorer l'efficacité du travail quotidien avec Python
[Python] J'ai essayé d'obtenir diverses informations en utilisant l'API de données YouTube!
J'ai essayé de visualiser la condition commune des téléspectateurs de la chaîne VTuber
J'ai essayé le serveur asynchrone de Django 3.0
J'ai essayé de résumer la commande umask
J'ai essayé de reconnaître le mot de réveil
J'ai essayé de commencer avec Hy
J'ai essayé de résumer la modélisation graphique.
J'ai essayé d'estimer le rapport de circonférence π de manière probabiliste
J'ai essayé de toucher l'API COTOHA
J'ai essayé de créer un site qui permet de voir facilement les informations mises à jour d'Azure
J'ai essayé de visualiser la tranche d'âge et la distribution des taux d'Atcoder
J'ai essayé de transcrire les actualités de l'exemple d'intégration commerciale sur Amazon Transcribe
zoom J'ai essayé de quantifier le degré d'excitation de l'histoire lors de la conférence
J'ai essayé d'estimer la similitude de l'intention de la question en utilisant Doc2Vec de gensim