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.
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.
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