def parsing(driver, URL, is_first): if is_first == False: latest_datetime = db_manage("get_recent", URL['info']) recent_date = None page = 1 while True: print('this page is\t| '+ URL['info'] + ' |\t' + str(page)) bs0bj = BeautifulSoup(driver.read(), "html.parser") # first 크롤링일 경우 그냥 진행 if is_first == True: db_docs = list_parse(driver, bs0bj, URL, page) # renewal 모드일 경우. DB에서 가장 최신 게시물의 정보를 가져옴. else: db_docs = list_parse(driver, bs0bj, URL, page, latest_datetime) # 맨 첫 번째 페이지를 파싱했고, 해당 페이지에서 글을 가져온 경우 # 해당 글을 최신 날짜를 딕셔너리로 저장 if page == 1 and len(db_docs) >= 1: recent_date = get_recent_date(URL, db_docs) if len(db_docs) == 0: print("addOK : 0") break else: addok = db_manage("add", URL['info'], db_docs) print("addOK : " + str(addok)) if addok == 0: break page += 1 driver = URLparser(URL['url'] + "&page=" + str(page)) # 최근 날짜가 갱신되었다면 db에도 갱신 if recent_date != None: db_manage("renewal_date", URL['info'], recent_date, is_first = is_first) recent_date = None
def parsing(driver, URL, is_first): if is_first == False: latest_datetime = db_manage("get_recent", URL['info']) recent_date = None page = 1 while True: print('this page is\t| '+ URL['info'] + ' |\t' + str(page - 1)) bs0bj = BeautifulSoup(driver.read(), "html.parser") bs0bj = bs0bj.find("ul",{"class":"list-body"}) # first 크롤링일 경우 or renewal 크롤링일 경우 if is_first == True: db_docs = list_parse(bs0bj, URL, page) else: db_docs = list_parse(bs0bj, URL, page, latest_datetime) # 최근 날짜 갱신 if page == 1 and len(db_docs) >= 1: recent_date = get_recent_date(URL, db_docs) if len(db_docs) == 0: print("addOK : 0") break else: addok = db_manage("add", URL['info'], db_docs) print("addOK : " + str(addok)) if addok == 0: break page += 1 driver = URLparser(URL['url'] + "&page=" + str(page)) #최근 날짜가 갱신되었다면 db에도 갱신 if recent_date != None: db_manage("renewal_date", URL['info'], recent_date, is_first = is_first) recent_date = None
def parsing(driver, URL, is_first): target = URL['info'].split('_')[1] global start_datetime start_datetime = startdate_dict[target] if is_first == False: latest_datetime = db_manage("get_recent", URL['info']) recent_date = None page = 1 print("start_date:" + start_datetime) while True: print('this page is\t| '+ URL['info'] + ' |\t' + str(page)) bs0bj = BeautifulSoup(driver.read(), "html.parser") bs0bj = bs0bj.find("div",{"id":"board_box"}).find("ul",{"id":"board_list"}) # first 크롤링일 경우 그냥 진행 if is_first == True: db_docs = list_parse(bs0bj, URL, page) # renewal 모드일 경우. DB에서 가장 최신 게시물의 정보를 가져옴. else: db_docs = list_parse(bs0bj, URL, page, latest_datetime) # 맨 첫 번째 페이지를 파싱했고, 해당 페이지에서 글을 가져온 경우 # 해당 글을 최신 날짜를 딕셔너리로 저장 if page == 1 and len(db_docs) >= 1: recent_date = get_recent_date(URL, db_docs) if len(db_docs) == 0: print("addOK : 0") break else: addok = db_manage("add", URL['info'], db_docs) print("addOK : " + str(addok)) if addok == 0: break page += 1 driver = URLparser(URL['url'] + "&pageIndex=" + str(page)) # 최근 날짜가 갱신되었다면 db에도 갱신 if recent_date != None: db_manage("renewal_date", URL['info'], recent_date, is_first = is_first) recent_date = None