nowy11111 Posted November 23, 2013 Report Share Posted November 23, 2013 Nie bede ukrywal ze jestem bardzo poczatkujacy jesli w kwestii programowania. Natknalem sie na takie zadanko: Chicago Transit Authority (CTA) prowadzi stronę (http://ctabustracker.com), na której można śledzić autobusy miejskie (większość z nich ma GPS). Ta strona ma też nieoficjalne API, którym można dostać się do trasy autobusu w XMLu. Można użyć URLa http://ctabustracker.com/bustime/map/getStopPredictions.jsp aby dowiedzieć się jak długo przyjdzie człowiekowi czekać na przystanku na pewien autobus. Trzeba jedynie podać numer trasy (np. 49) i id przystanku (np. 8207). Można to w prosty sposób przetestować: >>> import urllib >>> fields = { 'stop' : '8207', 'route':'49'} >>> parms = urllib.urlencode(fields) >>> u = urllib.urlopen("http://ctabustracker.com/bustime/map/getStopPredictions.jsp?"+parms) >>> resp = u.read() >>> print resp ... zobacz co wróci ... W pliku bustrack.py napisz funkcję bus_prediction(route,stop) która przyjmuje jako argumenty nr trasy i id przystanku, zadaje zapytanie do powyżej opisanej strony i zwraca pobrane dane XML. Użyj tej funkcji, aby dowiedzieć się jak długo turyści odwiedzający dom Baracka Obamy będą musieli czekąć na autobus linii 6 na przystanku 5037 (Lake Park & Hyde Park Blvd), aby wrócić do centrum. >>> print bus_prediction("6","5037") ... look at the output ...Chicago Transit Authority (CTA) prowadzi stronę (http://ctabustracker.com), na której można śledzić autobusy miejskie (większość z nich ma GPS). Ta strona ma też nieoficjalne API, którym można dostać się do trasy autobusu w XMLu. Można użyć URLa http://ctabustracker.com/bustime/map/getStopPredictions.jsp aby dowiedzieć się jak długo przyjdzie człowiekowi czekać na przystanku na pewien autobus. Trzeba jedynie podać numer trasy (np. 49) i id przystanku (np. 8207). Można to w prosty sposób przetestować: >>> import urllib >>> fields = { 'stop' : '8207', 'route':'49'} >>> parms = urllib.urlencode(fields) >>> u = urllib.urlopen("http://ctabustracker.com/bustime/map/getStopPredictions.jsp?"+parms) >>> resp = u.read() >>> print resp ... zobacz co wróci ... W pliku bustrack.py napisz funkcję bus_prediction(route,stop) która przyjmuje jako argumenty nr trasy i id przystanku, zadaje zapytanie do powyżej opisanej strony i zwraca pobrane dane XML. Czy ktos bylby w stanie i zechcial mi pomoc? Link to comment Share on other sites More sharing options...
Jason Posted November 25, 2013 Report Share Posted November 25, 2013 Gdzie natknąłeś się na to zadanie? Całą implementację masz podaną na tacy, teraz musisz tylko ubrać to w funkcję Dałem dwie wersje funkcji, z parsowaniem i bez parsowania XML: import urllib import xml.etree.ElementTree as ET def bus_prediction(route,stop): fields = { 'stop' : str(stop), 'route':str(route)} parms = urllib.urlencode(fields) u = urllib.urlopen("http://ctabustracker.com/bustime/map/getStopPredictions.jsp?"+parms) resp = u.read() return resp def bus_prediction_with_xml_process(route,stop): fields = { 'stop' : str(stop), 'route':str(route)} parms = urllib.urlencode(fields) u = urllib.urlopen("http://ctabustracker.com/bustime/map/getStopPredictions.jsp?"+parms) tree = ET.parse(u) root = tree.getroot() data=root.findall('pre') result=[] for pre in data: result.append("Przystanek: %s(%s); Odjazd za: %s"%(pre.find('fd').text,pre.find('v').text,pre.find('pt').text)) return result print bus_prediction_with_xml_process("6","5037") BTW. uważaj pisząc o Pythonie. Na tym Forum za to się dostaje bana. Już wiem! Ten temat to prowokacja od admina! Link to comment Share on other sites More sharing options...
5corpio Posted November 25, 2013 Report Share Posted November 25, 2013 Widząc temat "Pythona" wiedziałem, że jak wejdę to zobaczę rozwiązanie problemu przez Jasona hehe Ot taka mini-strona moja po godzinach http://www.wnetrzekuchni.pl Link to comment Share on other sites More sharing options...
ukilo Posted September 27, 2015 Report Share Posted September 27, 2015 Nie łatwe zadanie. Dobrze, że mamy tu prawdziwych specjalistów. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.