示例#1
0
    def setJeonbuk_uni2(self):
        conn = self.mypool.connect()
        print("start: jeonbuk_university2")
        for k in range(10):
            try:
                url = "https://likehome.jbnu.ac.kr/home/main/inner.php?sMenu=B7200"
                page = urlopen(url)
                soup = BeautifulSoup(page, "html.parser")

                table = soup.find('table')
                thead = table.find('thead')
                tbody = table.find('tbody')

                day = []
                breakfast = []
                lunch = []
                supper = []
                num = []

                for i in thead.find_all('th'):
                    day.append(i.get_text().strip().replace(" ", "").replace(
                        "\t\t", ""))
                del day[0]

                for i in range(7):
                    breakfast.append(
                        tbody.find_all('tr')[0].find_all('td')
                        [i].get_text().replace("\n", "").replace(" ", "<br>"))
                    lunch.append(
                        tbody.find_all('tr')[1].find_all('td')
                        [i].get_text().replace("\n", "").replace(" ", "<br>"))
                    supper.append(
                        tbody.find_all('tr')[2].find_all('td')
                        [i].get_text().replace("\n", "").replace(" ", "<br>"))
                    num.append(i)

                jeonbuk = University("전북대학교(참빛관)")
                for i in range(7):
                    carte = Carte(day[i], breakfast[i], lunch[i], supper[i],
                                  num[i])
                    jeonbuk.addCarte(carte)
                self.addUniversity(jeonbuk, conn)
                conn.close()
                break
            except BaseException as e:
                print(e)
                print("retry: jeonbuk_university2(" + str(k) + ')')
                time.sleep(1)
        print("finish: jeonbuk_university2")
示例#2
0
    def setkunsan_uni(self):

        conn = self.mypool.connect()
        print('start kunsan_university')
        for k in range(10):
            try:
                url = "http://www.kunsan.ac.kr/dormi/index.kunsan?menuCd=DOM_000000704006000000"
                page = urlopen(url)
                soup = BeautifulSoup(page, "html.parser")

                ctable = soup.find_all('table', 'ctable01')[1]
                thead = ctable.find('thead')
                day = thead.find_all('th')
                del (day[0])
                for i in range(0, len(day)):
                    temp = day[i].get_text().split('\n')
                    day[i] = temp[1] + ',' + temp[2]

                tbody = ctable.find('tbody')

                breakfast_t = tbody.find_all('tr')[0]
                lunch_t = tbody.find_all('tr')[1]
                supper_t = tbody.find_all('tr')[2]

                breakfast = []
                lunch = []
                supper = []
                for i in breakfast_t.find_all('td'):
                    breakfast.append(i.get_text().strip().replace(' ', '<br>'))
                for i in lunch_t.find_all('td'):
                    lunch.append(i.get_text().strip().replace(' ', '<br>'))
                for i in supper_t.find_all('td'):
                    supper.append(i.get_text().strip().replace(' ', '<br>'))

                kunsan = University('군산대학교')
                for i in range(7):
                    carte = Carte(day[i], breakfast[i], lunch[i], supper[i], i)
                    kunsan.addCarte(carte)
                self.addUniversity(kunsan, conn)
                conn.close()
                break
            except BaseException as e:
                print("error: " + e)
                print('retry kunsan_university(' + str(k) + ')')
                time.sleep(1)
        print('finish kunsan_university')
示例#3
0
	def db_fill(self, number):
		from Cursus import Cursus
		from Campus import Campus
		from University import University

		univ = University()
		univ.cb_fill(number)
		del univ
		db.session_try_commit()

		cursus = Cursus()
		cursus.cb_fill(number)
		del cursus
		db.session_try_commit()

		campus = Campus()
		campus.cb_fill(number)
		del campus
		db.session_try_commit()
示例#4
0
    def db_fill(self, number):
        from Cursus import Cursus
        from Campus import Campus
        from University import University

        univ = University()
        univ.cb_fill(number)
        del univ
        db.session_try_commit()

        cursus = Cursus()
        cursus.cb_fill(number)
        del cursus
        db.session_try_commit()

        campus = Campus()
        campus.cb_fill(number)
        del campus
        db.session_try_commit()
示例#5
0
 def __init__(self):
   #initialize objects
   self.uni = University.University("UVM", 12000, "Burlington, Vermont", 18000, 45000,[])
   self.cems = College.College("CEMS", 2000, [],[])
   self.cas = College.College("CAS", 3000, [],[])
   self.john = Professor.Professor("John Doe", "Votey 401", False, 3.0,[])
   self.jane = Professor.Professor("Jane Doe", "Votey 402", True, 2.5,[])
   self.sam = Professor.Professor("Sam Doe", "Votey 403", True, 5.0,[])
   self.cs127 = Course.Course("CS 127", 3)
   self.cs424 = Course.Course("CS 424", 18)
   self.cs319 = Course.Course("CS 319", 3)
示例#6
0
	def map(self):
		import User
		User.init_db()
		import Campus
		Campus.init()
		import Class
		Class.init()
		import ClassRoom
		ClassRoom.init()
		import Course
		Course.init()
		import Cursus
		Cursus.init()
		import Event
		Event.init()
		import Period
		Period.init()
		import Planning
		Planning.init()
		import Settings
		Settings.init()
		import University
		University.init()
示例#7
0
 def map(self):
     import User
     User.init_db()
     import Campus
     Campus.init()
     import Class
     Class.init()
     import ClassRoom
     ClassRoom.init()
     import Course
     Course.init()
     import Cursus
     Cursus.init()
     import Event
     Event.init()
     import Period
     Period.init()
     import Planning
     Planning.init()
     import Settings
     Settings.init()
     import University
     University.init()
示例#8
0
# -*- coding: utf-8 -*-

from University import *

"""
======================================================================================
                         직업의 키워드와 일치하는 과목 리스트를 만든다.
======================================================================================
"""

univ = University()     # univ : University 클래스 타입의 data

# test code
# print(univ.sw_list)
# print(univ.sw_list.__len__())


def find_in_sw(keyword):
    """소프트웨어융합학과 교과목 리스트의 수업 내용에서 "keyword"를 찾으면 학년별 리스트에 저장한다.

    example)
    입력 파라미터 keyword = "프로그래밍" 이라고 하자.
    sw_list = [["웹\파이선프로그래밍", "웹\파이선프로그래밍에 대해서 배운다.", "1"], ["a","a","a"], ...,["z","z","z"]]
    sw_list[0][1] 의 내용에 "프로그래밍" 이 있으므로
    sw_first_list 에 ["웹\파이선프로그래밍", "1"] 를 추가한다.

    :param keyword: 내가 찾고 싶은 키워드 이다. ex) 프로그래밍
    :return: None
    """

    for i in range(univ.sw_list.__len__()):
示例#9
0
 def setJeonju_uni(self):
     conn = self.mypool.connect()
     # 크롬 headless 모드 실행
     chrome_option = webdriver.ChromeOptions()
     chrome_option.add_argument('headless')
     chrome_option.add_argument('--disable-gpu')
     chrome_option.add_argument('lang=ko_KR')
     chrome_option.add_argument('--window-size=1920,1080')
     print('start jeonju_university')
     for k in range(10):
         try:
             driver = webdriver.Chrome("driver/chromedriver",
                                       chrome_options=chrome_option)
             driver.get("https://startower.jj.ac.kr/")
             time.sleep(1)
             driver.find_element_by_id(
                 "mainframe_childframe_form_DivMenuFrame_DivMainMenu_btn_MainMenu03"
             ).click()
             time.sleep(0.5)
             driver.find_element_by_id(
                 "mainframe_childframe_form_DivMenuFrame_DivSubMenu_btn_SubMenu04"
             ).click()
             time.sleep(0.5)
             breakfast = []
             lunch = []
             supper = []
             day = []
             num = []
             for i in range(1, 6):
                 driver.find_element_by_id(
                     "mainframe_childframe_form_DivMain_btn_Preview0" +
                     str(i)).click()
                 day.append(
                     driver.find_element_by_id(
                         "mainframe_childframe_form_DivMain_btn_Preview0" +
                         str(i)).text)
                 driver.switch_to_frame(
                     'mainframe_childframe_form_DivMain_web_Content_WebBrowser'
                 )
                 html = driver.page_source
                 soup = BeautifulSoup(html, "html.parser")
                 breakfast.append(
                     soup.find_all('tr')[0].find_all('td')
                     [1].get_text().strip().replace('\t\t\t\t', '<br>'))
                 lunch.append(
                     soup.find_all('tr')[1].find_all('td')
                     [1].get_text().strip().replace('\t\t\t\t', '<br>'))
                 supper.append(
                     soup.find_all('tr')[3].find_all('td')
                     [1].get_text().strip().replace('\t\t\t\t', '<br>'))
                 num.append(i)
                 driver.switch_to_default_content()
             driver.close()
             jeonju = University("전주대학교")
             for i in range(5):
                 carte = Carte(day[i], breakfast[i], lunch[i], supper[i],
                               num[i])
                 jeonju.addCarte(carte)
             print("finish jeonju_university")
             self.addUniversity(jeonju, conn)
             conn.close()
             break
         except BaseException as e:
             print(e)
             print('retry jeonju_university(' + str(k) + ')')
             time.sleep(1)
示例#10
0
    def setWonkwang_uni(self):
        conn = self.mypool.connect()
        # 크롬 headless 모드 실행
        chrome_option = webdriver.ChromeOptions()
        chrome_option.add_argument('headless')
        chrome_option.add_argument('--disable-gpu')
        chrome_option.add_argument('lang=ko_KR')
        chrome_option.add_argument('--window-size=1920,1080')

        print('start: wonkwang_university')
        for k in range(10):
            try:
                driver = webdriver.Chrome("driver/chromedriver",
                                          chrome_options=chrome_option)
                driver.get("https://dorm.wku.ac.kr/?cat=6")
                driver.find_element_by_tag_name(
                    'tbody').find_elements_by_tag_name(
                        'tr')[0].find_element_by_tag_name('a').click()

                html = driver.page_source
                driver.close()
                soup = BeautifulSoup(html, "html.parser")
                table = soup.find('table', 'tbl_type').find('tbody')

                temp = [["" for j in range(7)] for i in range(3)]
                day = []
                num = [i for i in range(7)]

                for i in table.find('tr').find_all('th'):
                    day.append(i.get_text())
                del day[0]

                for i in range(3):
                    for j in range(7):
                        temp[i][j] += table.find_all('tr')[
                            (i * 5) +
                            1].find_all('td')[j + 2].get_text().replace(
                                '\xa0', '') + '<br>'
                        temp[i][j] += table.find_all('tr')[
                            (i * 5) + 2].find_all('td')[j +
                                                        1].get_text() + '<br>'
                        temp[i][j] += table.find_all('tr')[
                            (i * 5) + 3].find_all('td')[j +
                                                        1].get_text() + '<br>'
                        temp[i][j] += table.find_all('tr')[
                            (i * 5) + 4].find_all('td')[j].get_text() + '<br>'
                        temp[i][j] += table.find_all('tr')[
                            (i * 5) +
                            5].find_all('td')[j].get_text().strip().replace(
                                '\n/', '<br>').replace('\n', '<br>')
                breakfast = temp[0]
                lunch = temp[1]
                supper = temp[2]

                wonkwang = University('원광대학교')
                for i in range(7):
                    carte = Carte(day[i], breakfast[i], lunch[i], supper[i],
                                  num[i])
                    wonkwang.addCarte(carte)
                self.addUniversity(wonkwang, conn)
                conn.close()
                break
            except BaseException as e:
                print(e)
                print('retry: wonkwang_university(' + str(k) + ')')
                time.sleep(1)
        print('finish wonkwang_university')
示例#11
0
    def getUniversiryInfo(self, line_to_find, major_to_find, region_to_find): #매개변수는 string으로 전달
        rst_university_list = []

        conn = http.client.HTTPConnection(self.__Server)
        URL = "http://www.career.go.kr/cnet/openapi/getOpenApi?apiKey=fecd1f7f737539284f53c14621096584&svcType=api&svcCode=MAJOR&contentType=xml&gubun=univ_list"
        if line_to_find !='':
            i_line_to_find=0
            if line_to_find=='인문계열':
                i_line_to_find=100391
            elif line_to_find=='사회계열':
                i_line_to_find = 100392
            elif line_to_find == '교육계열':
                i_line_to_find = 100393
            elif line_to_find == '공학계열':
                i_line_to_find = 100394
            elif line_to_find == '자연계열':
                i_line_to_find = 100395
            elif line_to_find == '의약계열':
                i_line_to_find = 100396
            elif line_to_find == '예체능계열':
                i_line_to_find = 100397
            URL += "&subject=" + str(i_line_to_find)

        conn.request("GET", URL)
        rq = conn.getresponse()
        strXml = rq.read().decode('utf-8')
        #print(strXml)

        if major_to_find != '':
            # 학과가 해당하는 학과코드를 탐색
            # (한 학과가 두 개의 학과코드에 포함되어 있는 경우가 있음)
            tree = ET.ElementTree(ET.fromstring(strXml))
            universityElements = tree.iter("content")  # return list type
            major_seq_list=[]
            for university in universityElements:
                major_list = university.find("facilName")
                for major in major_list.text.split(','):
                    if major == major_to_find:
                        major_seq=university.find("majorSeq").text
                        major_seq_list.append(major_seq)
                        print(major)
                        print("major_seq: ",major_seq)

            # 탐색한 학과코드로 재요청

            rst_university_name_list = []
            #result_college_name = []
            #result_campus_name = []
            for i in major_seq_list:
                for j in self.getUniversiryInfoByMajorSeq(i):
                    # 학교가 중복으로 나올 수 있으므로 학교 이름으로 중복 방지 ( 타 캠퍼스는 다른 학교로 취급)
                    if [j.find("schoolName").text, j.find("campus_nm").text] not in rst_university_name_list:
                        if (region_to_find != '')and (j.find('area').text != region_to_find):  # 지역 검색시
                            continue
                        rst_university_list.append(Univ.University(j.find("schoolName").text,j.find("campus_nm").text,j.find("majorName").text,j.find("area").text,j.find("schoolURL").text))
                        rst_university_name_list.append([j.find("schoolName").text, j.find("campus_nm").text])


        #rst_university_list.sort(key=lambda x: (x.find("schoolName").text, x))


        return rst_university_list # type University  list