Snippets

Created by Iakov Davydov last modified
#!/usr/bin/env python
import urllib
from bs4 import BeautifulSoup

class Transport:
    def __init__(self, line, stop, direction, time):
        self.line = line
        self.stop = stop
        self.direction = direction
        self.time = time

    def __str__(self):
        return '%s %s->%s: %s' % (
            self.line, self.stop, self.direction, self.time)

    def __repr__(self):
        return '<Transport: %s %s->%s: %s>' % (
            self.line, self.stop, self.direction, self.time)

base_url = 'http://www.t-l.ch/tl-live-mobile/line_detail.php?from=horaire&'
def create_url(par):
    return base_url + urllib.urlencode(par)

def get_schedule(par):
    url = create_url(par)
    l = []
    s = urllib.urlopen(url)
    #s = open('x')
    soup =  BeautifulSoup(s, 'html.parser')
    #print soup.prettify()
    for entry in soup.find_all('li', class_='horaireline'):
        linename = entry.find(class_='linename').get_text().strip()
        name = entry.find(class_='name').get_text('|').strip()
        stop, direction = name.split('|')
        time = entry.find(class_='time').get_text().strip()
        l.append(Transport(linename, stop, direction, time))
    return l
    

if __name__ == '__main__':
    # sorge -> renens
    par1 = {
        'id': 3377704015495993,
        'line': 11821953316814882,
        'id_stop': 2533279085538372,
        'id_direction': 11821953316814882,
        'lineName': 'm1'
    }
    # sorge -> flon
    par2 = {
        'id': 3377704015495991,
        'line': 11821953316814882,
        'id_stop': 2533279085547610,
        'id_direction': 11821953316814882,
        'lineName': 'm1'
    }
    for t1, t2 in zip(get_schedule(par1), get_schedule(par2)):
        print str(t1).ljust(40), t2

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.