diff --git a/main.py b/main.py index 6f06a72..41a939a 100644 --- a/main.py +++ b/main.py @@ -48,7 +48,7 @@ dialog = input('몇화부터 몇화까지 다운로드 받으시겠습니까? 예) 1-10 , 5: ').strip() - # 입력값 검증 "숫자" 또는 "숫자-숫자" 만 입력하도록 + # 입력값 검증 : "숫자" 또는 "숫자-숫자" 만 입력하도록 while (True): if dialog.isdigit() or (dialog.find('-') != -1 and dialog.split('-')[0].isdigit() and dialog.split('-')[1].isdigit()): break @@ -67,8 +67,8 @@ else: # 일반 다운로드일때 download_number_lst = list( map(int, dialog.split('-'))) # "1-2" -> [1,2] - webtoon.multi_download( - download_number_lst[0], download_number_lst[1]) + start, end = download_number_lst + webtoon.multi_download(start, end) input('다운로드가 완료되었습니다.') elif dialog.lower() == 'm': path = input("병합할 웹툰 경로를 입력해주세요 : ") @@ -91,4 +91,5 @@ os.system('cls' if os.name == 'nt' else 'clear') except Exception as e: print(e) - input("오류가 발생했습니다.") + input( + "오류가 발생했습니다. 미리 보기, 유료화된 화수 또한 전체 화수에 포함되니 그것을 제외한 화수를 입력해주세요. (네이버 웹툰 홈페이지에서 직접 확인 가능.)") diff --git a/module/Nwebtoon.py b/module/Nwebtoon.py index 2d6913b..944cc95 100644 --- a/module/Nwebtoon.py +++ b/module/Nwebtoon.py @@ -90,6 +90,8 @@ def __init__(self, query: str) -> None: f"https://comic.naver.com/{self.__wtype}/detail?titleId={self.__title_id}&no=999999", allow_redirects=True) redirected_url = res.url + cookies = {} + # 웹툰 리다이렉트 주소가 로그인 주소인 경우 성인웹툰임 if ("https://nid.naver.com/nidlogin.login" in redirected_url): self.__isadult = True @@ -101,21 +103,27 @@ def __init__(self, query: str) -> None: self.set_session(NID_AUT, NID_SES) # 객체에 세션 데이터 넘기기 cookies = {"NID_AUT": NID_AUT, "NID_SES": NID_SES} - res = requests.get( - f"https://comic.naver.com/{self.__wtype}/detail?titleId={self.__title_id}&no=999999", cookies=cookies, allow_redirects=True) - redirected_url = res.url + # res = requests.get( + # f"https://comic.naver.com/{self.__wtype}/detail?titleId={self.__title_id}&no=999999", cookies=cookies, allow_redirects=True) + # redirected_url = res.url # url에서 no 부분만 가져오기 # ex) https://comic.naver.com/webtoon/detail?titleId=20853&no=100 -> 100 - match = re.search(r'no=(\d+)', redirected_url) + # match = re.search(r'no=(\d+)', redirected_url) - if match: - # 웹툰 총 화수 (반드시 int타입 이여야함.) - self.__number = int(match.group(1)) - else: - input( - "Error : 웹툰의 총 화수를 가져오지 못했습니다.\n성인웹툰이라면 NID_AUT, NID_SES의 오타 여부를, 일반 웹툰이라면 인터넷 연결 상태를 확인해주세요.") - exit() + # if match: + # # 웹툰 총 화수 (반드시 int타입 이여야함.) + # self.__number = int(match.group(1)) + # else: + # input( + # "Error : 웹툰의 총 화수를 가져오지 못했습니다.\n성인웹툰이라면 NID_AUT, NID_SES의 오타 여부를, 일반 웹툰이라면 인터넷 연결 상태를 확인해주세요.") + # exit() + + res = requests.get( + f"https://comic.naver.com/api/article/list?titleId={self.__title_id}&page=1", cookies=cookies) + res_json: dict = json.loads(res.content) + + self.__number = int(res_json['totalCount']) adult_parse = webtoon.age.type print(webtoon.age.type)