Skip to content

Instantly share code, notes, and snippets.

@hronecviktor
Created October 13, 2013 17:34
Show Gist options
  • Save hronecviktor/6964975 to your computer and use it in GitHub Desktop.
Save hronecviktor/6964975 to your computer and use it in GitHub Desktop.
public transport parse
__author__ = 'zamr666'
import sys
import collections
def printLines(lines):
print("\nTime:\tGoing in:\tNumber:\t Direction:")
for _ in lines:
print(_.time,"\t",_.intime.center(7," "),"\t",_.number,"\t",_.direction)
#if ((len(sys.argv)== 1) | (sys.argv in ["-h","--help"])):
# print("No input given.")
# exit()
_ = "<span class=\"h0\">Zastávka Damborského</span><table class=\"tabulka\"><tr><th>Linka</th><th>Typ</th><th>Smer</th><script language=JavaScript>function Mapa(parameter) {window.open('http://mapa.zoznam.sk/objekt/'+parameter,'Mapa','');}</script><th>Mapa</th></tr><tr><td><a href=\"/ba/cestovny-poriadok/linka/4/smer/Zlate-piesky/zastavka/Damborskeho/52251.html\"><span style=\"font-size: 1.5em\" class=\"linka ba l4\">4</span></a></td><td><p align=\"center\">električka</p></td><td><b><a href=\"/ba/cestovny-poriadok/linka/4/smer/Zlate-piesky/zastavka/Damborskeho/52251.html\">Zlaté piesky</a></b></td><td style=\"text-align: center; vertical-align: bottom\"><a class=\"button button_mini\" href=\"javascript:Mapa(29872);\">Mapa</a></p></td></tr><tr><td><a href=\"/ba/cestovny-poriadok/linka/4/smer/Dubravka/zastavka/Damborskeho/629145652263.html\"><span style=\"font-size: 1.5em\" class=\"linka ba l4\">4</span></a></td><td><p align=\"center\">električka</p></td><td><b><a href=\"/ba/cestovny-poriadok/linka/4/smer/Dubravka/zastavka/Damborskeho/629145652263.html\">Dúbravka</a></b></td><td style=\"text-align: center; vertical-align: bottom\"><a class=\"button button_mini\" href=\"javascript:Mapa(29873);\">Mapa</a></p></td></tr><tr><td><a href=\"/ba/cestovny-poriadok/linka/5/smer/Raca/zastavka/Damborskeho/943718452244.html\"><span style=\"font-size: 1.5em\" class=\"linka ba l5\">5</span></a></td><td><p align=\"center\">električka</p></td><td><b><a href=\"/ba/cestovny-poriadok/linka/5/smer/Raca/zastavka/Damborskeho/943718452244.html\">Rača</a></b></td><td style=\"text-align: center; vertical-align: bottom\"><a class=\"button button_mini\" href=\"javascript:Mapa(29872);\">Mapa</a></p></td></tr><tr><td><a href=\"/ba/cestovny-poriadok/linka/5/smer/Dubravka/zastavka/Damborskeho/734003252267.html\"><span style=\"font-size: 1.5em\" class=\"linka ba l5\">5</span></a></td><td><p align=\"center\">električka</p></td><td><b><a href=\"/ba/cestovny-poriadok/linka/5/smer/Dubravka/zastavka/Damborskeho/734003252267.html\">Dúbravka</a></b></td><td style=\"text-align: center; vertical-align: bottom\"><a class=\"button button_mini\" href=\"javascript:Mapa(29873);\">Mapa</a></p></td></tr><tr><td><a href=\"/ba/cestovny-poriadok/linka/20/smer/Tesco-Lamac/zastavka/Damborskeho/838860852250.html\"><span style=\"font-size: 1.5em\" class=\"linka ba l20\">20</span></a></td><td><p align=\"center\">autobus</p></td><td><b><a href=\"/ba/cestovny-poriadok/linka/20/smer/Tesco-Lamac/zastavka/Damborskeho/838860852250.html\">Tesco Lamač</a></b></td><td style=\"text-align: center; vertical-align: bottom\"><a class=\"button button_mini\" href=\"javascript:Mapa(29874);\">Mapa</a></p></td></tr><tr><td><a href=\"/ba/cestovny-poriadok/linka/20/smer/Devinska-Nova-Ves-Opletalova/zastavka/Damborskeho/314572852268.html\"><span style=\"font-size: 1.5em\" class=\"linka ba l20\">20</span></a></td><td><p align=\"center\">autobus</p></td><td><b><a href=\"/ba/cestovny-poriadok/linka/20/smer/Devinska-Nova-Ves-Opletalova/zastavka/Damborskeho/314572852268.html\">Devínska Nová Ves, Opletalova</a></b></td><td style=\"text-align: center; vertical-align: bottom\"><a class=\"button button_mini\" href=\"javascript:Mapa(29875);\">Mapa</a></p></td></tr><tr><td><a href=\"/ba/cestovny-poriadok/linka/83/smer/Dubravka-Pri-krizi/zastavka/Damborskeho/734003252244.html\"><span style=\"font-size: 1.5em\" class=\"linka ba l83\">83</span></a></td><td><p align=\"center\">autobus</p></td><td><b><a href=\"/ba/cestovny-poriadok/linka/83/smer/Dubravka-Pri-krizi/zastavka/Damborskeho/734003252244.html\">Dúbravka, Pri kríži</a></b></td><td style=\"text-align: center; vertical-align: bottom\"><a class=\"button button_mini\" href=\"javascript:Mapa(29875);\">Mapa</a></p></td></tr><tr><td><a href=\"/ba/cestovny-poriadok/linka/83/smer/Petrzalka-Technopol/zastavka/Damborskeho/629145652268.html\"><span style=\"font-size: 1.5em\" class=\"linka ba l83\">83</span></a></td><td><p align=\"center\">autobus</p></td><td><b><a href=\"/ba/cestovny-poriadok/linka/83/smer/Petrzalka-Technopol/zastavka/Damborskeho/629145652268.html\">Petržalka, Technopol</a></b></td><td style=\"text-align: center; vertical-align: bottom\"><a class=\"button button_mini\" href=\"javascript:Mapa(29874);\">Mapa</a></p></td></tr><tr><td><a href=\"/ba/cestovny-poriadok/linka/84/smer/Dubravka-Pri-krizi/zastavka/Damborskeho/734003252251.html\"><span style=\"font-size: 1.5em\" class=\"linka ba l84\">84</span></a></td><td><p align=\"center\">autobus</p></td><td><b><a href=\"/ba/cestovny-poriadok/linka/84/smer/Dubravka-Pri-krizi/zastavka/Damborskeho/734003252251.html\">Dúbravka, Pri kríži</a></b></td><td style=\"text-align: center; vertical-align: bottom\"><a class=\"button button_mini\" href=\"javascript:Mapa(29875);\">Mapa</a></p></td></tr><tr><td><a href=\"/ba/cestovny-poriadok/linka/84/smer/Petrzalka-Ovsiste/zastavka/Damborskeho/104857652261.html\"><span style=\"font-size: 1.5em\" class=\"linka ba l84\">84</span></a></td><td><p align=\"center\">autobus</p></td><td><b><a href=\"/ba/cestovny-poriadok/linka/84/smer/Petrzalka-Ovsiste/zastavka/Damborskeho/104857652261.html\">Petržalka, Ovsište</a></b></td><td style=\"text-align: center; vertical-align: bottom\"><a class=\"button button_mini\" href=\"javascript:Mapa(29874);\">Mapa</a></p></td></tr><tr><td><a href=\"/ba/cestovny-poriadok/linka/120/smer/Tesco-Lamac/zastavka/Damborskeho/734003252241.html\"><span style=\"font-size: 1.5em\" class=\"linka ba l120\">120</span></a></td><td><p align=\"center\">autobus</p></td><td><b><a href=\"/ba/cestovny-poriadok/linka/120/smer/Tesco-Lamac/zastavka/Damborskeho/734003252241.html\">Tesco Lamač</a></b></td><td style=\"text-align: center; vertical-align: bottom\"><a class=\"button button_mini\" href=\"javascript:Mapa(29875);\">Mapa</a></p></td></tr><tr><td><a href=\"/ba/cestovny-poriadok/linka/120/smer/Devinska-Nova-Ves-Na-hriadkach/zastavka/Damborskeho/52264.html\"><span style=\"font-size: 1.5em\" class=\"linka ba l120\">120</span></a></td><td><p align=\"center\">autobus</p></td><td><b><a href=\"/ba/cestovny-poriadok/linka/120/smer/Devinska-Nova-Ves-Na-hriadkach/zastavka/Damborskeho/52264.html\">Devínska Nová Ves, Na hriadkach</a></b></td><td style=\"text-align: center; vertical-align: bottom\"><a class=\"button button_mini\" href=\"javascript:Mapa(29874);\">Mapa</a></p></td></tr><tr><td><a href=\"/ba/cestovny-poriadok/linka/N34/smer/Dubravka/zastavka/Damborskeho/314572852254.html\"><span style=\"font-size: 1.5em\" class=\"linka ba lN34\">N34</span></a></td><td><p align=\"center\">nočný spoj - autobus</p></td><td><b><a href=\"/ba/cestovny-poriadok/linka/N34/smer/Dubravka/zastavka/Damborskeho/314572852254.html\">Dúbravka</a></b></td><td style=\"text-align: center; vertical-align: bottom\"><a class=\"button button_mini\" href=\"javascript:Mapa(29875);\">Mapa</a></p></td></tr><tr><td><a href=\"/ba/cestovny-poriadok/linka/N34/smer/Hlavna-stanica/zastavka/Damborskeho/419430452267.html\"><span style=\"font-size: 1.5em\" class=\"linka ba lN34\">N34</span></a></td><td><p align=\"center\">nočný spoj - autobus</p></td><td><b><a href=\"/ba/cestovny-poriadok/linka/N34/smer/Hlavna-stanica/zastavka/Damborskeho/419430452267.html\">Hlavná stanica</a></b></td><td style=\"text-align: center; vertical-align: bottom\"><a class=\"button button_mini\" href=\"javascript:Mapa(29874);\">Mapa</a></p></td></tr></table><h2>Najbližšie odchody</h2><table class=\"tabulka\"><tr><th>Čas</th><th>Linka</th><th>Smer</th></tr><tr><td><b>17:37</b> (o 2 min)</td><td><span style=\"font-size: 1.5em\" class=\"linka ba l83\">83</span></td><td>Petržalka, Technopol</td></tr><tr><td><b>17:38</b> (o 3 min)</td><td><span style=\"font-size: 1.5em\" class=\"linka ba l4\">4</span></td><td>Zlaté piesky</td></tr><tr><td><b>17:42</b> (o 7 min)</td><td><span style=\"font-size: 1.5em\" class=\"linka ba l5\">5</span></td><td>Dúbravka</td></tr><tr><td><b>17:42</b> (o 7 min)</td><td><span style=\"font-size: 1.5em\" class=\"linka ba l83\">83</span></td><td>Dúbravka, Pri kríži</td></tr><tr><td><b>17:44</b> (o 9 min)</td><td><span style=\"font-size: 1.5em\" class=\"linka ba l5\">5</span></td><td>Rača</td></tr><tr><td><b>17:44</b> (o 9 min)</td><td><span style=\"font-size: 1.5em\" class=\"linka ba l20\">20</span></td><td>Devínska Nová Ves, Opletalova</td></tr><tr><td><b>17:48</b> (o 13 min)</td><td><span style=\"font-size: 1.5em\" class=\"linka ba l4\">4</span></td><td>Dúbravka</td></tr><tr><td><b>17:49</b> (o 14 min)</td><td><span style=\"font-size: 1.5em\" class=\"linka ba l83\">83</span></td><td>Petržalka, Technopol</td></tr><tr><td><b>17:51</b> (o 16 min)</td><td><span style=\"font-size: 1.5em\" class=\"linka ba l20\">20</span></td><td>Tesco Lamač</td></tr><tr><td><b>17:53</b> (o 18 min)</td><td><span style=\"font-size: 1.5em\" class=\"linka ba l4\">4</span></td><td>Zlaté piesky</td></tr></table><div class=\"separator2\"></div><h4 style=\"text-align: center\">Tip: Automatické informácie o zmene cestovných poriadkov nájdete aj tu:<br /><br /><a href=\"/ba/rss/nove-cestovne-poriadky\"><img src=\"/data/img/platforms/rss.png\" width=\"32\" height=\"32\" /></a> <a href=\"http://www.facebook.com/ba.imhd.sk\" target=\"facebook\"><img src=\"/data/img/platforms/facebook.png\" width=\"32\" height=\"32\" /></a> <a href=\"http://twitter.com/baimhdsk\" target=\"twitter\"><img src=\"/data/img/platforms/twitter.png\" width=\"32\" height=\"32\" /></a> <a href=\"http://plus.google.com/111945816452749437108/ \" target=\"googleplus\"><img src=\"/data/img/platforms/googleplus.png\" width=\"32\" height=\"32\" /></a> </h4><div class=\"boxfill\"><table><h2>Vyhľadanie linky</h2><tr><td class=\"top\"><h3>Vyhľadávanie</h3></td><td><form name=\"linka\" action=\"/ba/cestovny-poriadok/linka.html\" method=post><input class=\"inputtext\" id=\"linkaHladaj\" maxlength=\"30\" size=\"15\" name=\"hladaj\" style=\"width: 330px; font-size: 1.2em\"> <input class=\"buttonSearch\" style=\"display: inline\" type=\"submit\" value=\"\" /></td></form></tr><script type=\"text/javascript\">"
BusLine = collections.namedtuple("BusLine","time intime direction number")
lines = []
BusLines = []
_ = _.split("<tr>")
for a in _:
if "</b> (o " in a:
#print(a)
lines.append(a)
for _ in range(len(lines)):
line = lines[_]
#lines[_] = lines[_].split("</td><td>")
lines[_] = lines[_].replace("<td>","")
lines[_] = lines[_].replace("</td>","")
lines[_] = lines[_].replace("<b>","")
lines[_] = lines[_].replace("<span>","")
#lines[_] = lines[_].replace("</span>","")
#lines[_] = lines[_].replace("</b>","")
lines[_] = lines[_].replace("</tr>","")
lines[_] = lines[_].split("</table>")[0]
#print(lines[_])
#print("cas: ",lines[_][0:5]," ide o: ",lines[_].split(" ")[2]," minut"," Smer: ",lines[_].split("</span>")[1]," Linka: ",lines[_].split("class=\"")[1].split("\"")[0].split(" ")[2])
BusLines.append(BusLine(lines[_][0:5],lines[_].split(" ")[2],lines[_].split("</span>")[1],lines[_].split("class=\"")[1].split("\"")[0].split(" ")[2]))
printLines(BusLines)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment