The Code:
# -*- coding: utf-8 -*-
#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# IMPORT REQUIRED MODULES
#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
import os
import urllib2
from bs4 import BeautifulSoup
import datetime
#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# DOWNLOAD WEBPAGE
#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def get_webpage(url):
user_agent = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.63 Safari/534.3'
headers = { 'User-Agent' : user_agent }
req = urllib2.Request(url, None, headers)
response = urllib2.urlopen(req)
return response.read()
#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# GET NEXT BUS TIME
#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def get_next_bus_time(route, stop):
STOP = str(stop)
ROUTE = " "+str(route)+" "
url = "http://dublinbus.ie/en/RTPI/Sources-of-Real-Time-Information/?searchtype=view&searchquery="+STOP
html = get_webpage(url)
soup = BeautifulSoup(html)
for row in soup.find('table', id='rtpi-results'):
ROW=str(' '.join(str(row).split()))
if ROUTE in ROW:
for col in ROW.split("
if ":" in col:
return col.strip(' ').lstrip('
elif "Due" in col:
return str(datetime.datetime.now().time())[:5]
#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# MAIN
#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
time = get_next_bus_time(11,10)
print "The next Number 11 Bus, from Stop Number 10, will arrive at "+time+"."