Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import urllib2
- import StringIO
- import lxml.html
- import sqlite3
- c = sqlite3.connect('busy2.0.db')
- c.execute('''CREATE TABLE busy (numer text, kolejnosc text, przystanek text, kierunek text, id_trasy text)''')
- c.execute('''CREATE TABLE rozklad (numer text, typ_rozkladu text, id_przyst text, kierunek text, id_trasy text, godzina text)''')
- def fetch(url):
- Query = {}
- try:
- Query = urllib2.urlopen(url)
- except (urllib2.HTTPError,urllib2.URLError):
- Query = fetch(url)
- return Query
- def pobierz_rozkl(nr_przyst, nr_trasy, nr_autobusa, nr_p, kier):
- rozklad = fetch("http://rozklady.kzkgop.pl/wydruk.php?plik=przystankowo"+str(nr_przyst)+"_"+str(nr_trasy)+".php&numer_linii="+str(nr_autobusa)).read()
- root = lxml.html.fromstring(rozklad)
- i = root.cssselect("div#rozklad_tabliczka")[0]
- surowo = lxml.html.tostring(i)
- godziny = lxml.html.fromstring(surowo)
- for g in godziny.cssselect('tr'):
- czas = ''
- try:
- typ_rozkladu = g.cssselect('th')[0]
- typ = typ_rozkladu.text
- except IndexError:
- w =0
- for a in g.cssselect('span#blok_godzina'):
- godz = a.cssselect('b')[0]
- aktualna = godz.text
- for min in a.cssselect('sup'):
- czas += str(aktualna)+':'+str(min.text)+' '
- ao = str(aktualna)+':'+str(min.text)
- c.execute("Insert Into rozklad VALUES ('"+ str(nr_autobusa)+"','"+unicode(typ)+"','"+str(nr_p)+"','"+str(unicode(kier))+"','"+str(nr_trasy)+"','"+str(ao)+"')");
- #print czas
- #print root.cssselect("div#tabliczka_topinfo h2 a")[0].attrib['href']
- #pobierz_rozkl(1,7562,'_T')
- def pobierz_autobusy():
- strona = rozklad = urllib2.urlopen("http://rozklady.kzkgop.pl/index.php?co=rozklady").read()
- root = lxml.html.fromstring(rozklad)
- data = root.cssselect('div.zbior_linii')
- licznik =0
- i = 0
- for bus_all in data:
- busy = bus_all.cssselect('span')
- licznik +=1
- print 'Wszystki wykrytych: : '+str(len(busy))
- for sigle in busy:
- i=i+1
- if licznik == 1:
- c_nazwa = 'T'+str(sigle.text)
- else:
- c_nazwa = sigle.text
- print str(i)+". "+ c_nazwa
- pobierz_przyst(c_nazwa, None)
- def pobierz_przyst(nr_busa, data):
- if data == None:
- strona = fetch("http://rozklady.kzkgop.pl/index.php?co=rozklady&submenu=trasy&nr_linii="+str(nr_busa)).read()
- else:
- strona = fetch("http://rozklady.kzkgop.pl/index.php?co=rozklady&submenu=trasy&nr_linii="+str(nr_busa)+"&data="+str(data)).read()
- try:
- root = lxml.html.fromstring(strona)
- count = 1
- a = root.cssselect('div#div_tabelki_tras')
- for o in a:
- count = 1
- kier =o.cssselect('div')[1]
- if kier.attrib['id']=='lewo' or kier.attrib['id']!='prawo':
- count = 2
- for e in range(1,count+1):
- kier =o.cssselect('div')[e]
- for id in kier.cssselect('td.td_przystanek'):
- #print id[0].text+' '+unicode(kier.attrib['id'])
- href = id.cssselect('a')[0].attrib['href']
- tt = href.split('&')
- tableb = tt[3].split('=')
- tablea = tt[4].split('=')
- id_trasy = tablea[1]
- nr_przyst = tableb[1]
- c.execute("Insert Into busy VALUES ('"+str(nr_busa)+"','"+str(nr_przyst)+"','"+id[0].text+"','"+str(unicode(kier.attrib['id']))+"','"+str(id_trasy)+"')")
- pobierz_rozkl(nr_przyst, id_trasy, nr_busa, nr_przyst, str(unicode(kier.attrib['id'])))
- c.commit()
- except IndexError:
- root = lxml.html.fromstring(strona)
- s = root.cssselect('div#div_tabelki_tras')[0]
- rozklad = s.cssselect('li a b')[0]
- pobierz_przyst(nr_busa,rozklad.text)
- pobierz_autobusy()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement