-
Notifications
You must be signed in to change notification settings - Fork 0
/
parse_predmet.py
62 lines (53 loc) · 1.69 KB
/
parse_predmet.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# -*- coding: UTF-8 -*-
FILLER = "[^[]/]"
STUD_URL = "https://is.muni.cz/auth/predmety/predmet.pl?id="
import urllib2
import re
from BeautifulSoup import BeautifulSoup
import get_page_c
import auth_muni
import databaze_predmetu
FAKULTY = {'Lékařská fakulta' : 1411 ,
u'FF' : 1421 ,
u'PrF' : 1422 ,
u'FSS' : 1423 ,
'Přírodovědecká fakulta' : 1431 ,
'Fakulta informatiky' : 1433,
'Pedagogická fakulta' : 1441 ,
u'ESF' : 1456 ,
u'FSpS' : 1451,
u'CUS' : 1490}
class DoParsePredmet:
def __init__(self, _pid):
self.pid = _pid
page, url = get_page_c.get_page(STUD_URL + str(self.pid), auth_muni.username, auth_muni.password)
self.page = page
self.parseFakulta(page)
#Beautiful Soup nepotřebujeme, uděláme si to regexpem
#řeší zvrhlé ukončovací tagy
# self.document = re.sub('(</[^<>\s]*)[^<>]*>', lambda x: x.group(1) + '>', page)
#
# soup = BeautifulSoup(self.document)
# self.aplikace = soup.find('div', id='aplikace')
#
# identita_profil = self.aplikace.find('div', id='identita_profil')
# skola = self.aplikace.find('div', id='skola')
# vyuka = self.aplikace.find('div', id='vyuka')"""
def parseFakulta(self, text):
try:
self.fakulta = re.search(u"<B>([^<>/]*fakulta[^<>/]*)</B>", text, re.IGNORECASE).group(1)
except Exception,e:
self.fakulta=None
self.fid=None
return
self.fid = FAKULTY[self.fakulta]
def print_info(self):
print u"ID předmětu:\t\t" + unicode(self.pid) + "\n"
print "Fakulta:\t\t" + self.fakulta + "\n"
def storetoDB(self, fajl):
if self.pid == None or self.fid == None: return False
a = databaze_predmetu.DB(fajl)
a.insertInto(self.pid, self.fid)
if __name__ == "__main__":
s = DoParsePredmet(558000)
s.print_info()