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