Jump to content
nowy11111

zmiana kodu w pythonie

Recommended Posts

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?

Share this post


Link to post
Share on other sites

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! :D

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...