[도서 정보 자동 입력 프로그램] 3-1. Selenium 입력 구조 구상
이번 포스팅부터 본격적으로 Yes24로 도서 정보 입력을 시작한다.
제일 처음으로 입력하는 구조를 구상해야 한다. 도서 정보를 알라딘에서 Yes24로 입력하는 것을 처음에는 그저 있는대로 복붙하는 굉장히 단순한 과정이라 생각했다.하지만 계속 진행을 하다보니 생각만큼 간단하지가 않았다.책의 종류가 많은 만큼 이런저런 예외적인 경우가 발생하고, 알라딘과 Yes24의 입력 방식과 분류가 달라서 그걸 끼워맞춰야할 일도 많았다.
대략적으로 아래와 같은 구분이 필요하다.
1) 가장 기본적이고 큰 문제는 바로 ISBN 유무이다.
ISBN이 있는 도서라면 검색을 통해 기본정보를 불러와서 입력 절차를 간소화할 수 있다.ISBN이 없다면 모든 정보를 일일히 입력해야한다.
2) 또한 ISBN이 있지만 Yes24에 조회가 안되는 경우가 있다.
이경우는 ISBN 중복검사를 거친 후 ISBN이 없는 도서와 동일하게 모든 정보를 일일히 입력해줘야한다.
3) 예외적으로 판매 가격을 입력하는 과정에서 주의해야하는 경우도 있다.
Yes24는 알라딘과 다르게 새책의 정가보다 비싼 가격으로 가격을 책정할 경우 일반 상품이 아닌 '소장용 상품'으로 별도 분류를 해야만 등록이 가능하다.이를 위해 정가를 별도로 불러와서 판매가격과 비교하여 정가보다 더 비싼 경우 '소장용 상품' Radio버튼을 클릭해주는 과정이 필요하다.
그리하여 위 3가지를 모두 종합할 수 있는 입력 구조를 if문으로 구상했다.if문을 너무 많이 쓰면 가뜩이나 selenium자체가 느린편인데 프로그램이 전체적으로 더 무거워질 것같아서 최소한으로 간결하게 짜보려했는데, 내가 이런 쪽 경험이 처음이다 보니 뭔가 더 간단하게 짤 수 있을 것같은데 이런 구조 방식이 나로선 최선이었다. (괴수분들은 쓸모없는 부분을 제하고 더 간결하게 짜실 수 있을테지만.. 나로썬 이게 한계.)
대략적인 구조는 아래와 같다.
· Yes24 관리자 페이지 접속 후 상품 등록 페이지로 이동 (공통)
if (ISBN이 있을 경우):
- ISBN 입력 후 조회 버튼 Click
if (ISBN 조회가 되는 경우 - Yes24 등록 도서):
- 조회 된 도서 등록 버튼을 Click하여 도서 정보 입력 시작
- 기본 정보(도서 명, 저자 등) 이외에 책 상태, 책 가격 등 추가 정보 입력
if (정가보다 판매가가 비싼 경우):
- 경고창 확인, 소장용 상품 click, 판매가 입력
else (ISBN 조회가 안되는 경우 - Yes24 미등록 도서):
- 신규 등록 click
- ISBN 입력, 중복체크 click 후 확인
- 이후 부터 모든 정보 입력
if (정가보다 판매가가 비싼 경우):
- 경고창 확인, 소장용 상품 click, 판매가 입력
else (ISBN이 없는 경우):
- 신규 등록 click
- 이후부터 모든 정보 입력
if (정가보다 판매가가 비싼 경우):
- 경고창 확인, 소장용 상품 click, 판매가 입력
각각의 if 안에도 더 많은 if문과 try문이 있지만 일단 생략. 전체적인 구조는 이러하다.
여기서 초록색 else와 붉은색 else의 '이후부터 모든정보 입력'은 코드가 같다.
그래서 처음엔 중복이라 생각하고 한쪽은 삭제하고 싶었는데 if는 결국 한쪽을 건너뛰게 되는 코드라 양쪽을 다 써줘야한다.
코드가 엄청 길어지고 나중에 수정하려는 과정에서 눈이 아파 고치기도 어렵다.
입력 부분을 아예 함수로 만들어서 양쪽에 넣으면 더 간단해지지 않을까 하는데, 변수를 함수로 받아오고 출력하는 과정이 생각할거리가 많아 그냥 단순하게 복붙으로 다 넣어버렸다...
나중에 코딩 실력이 상승하면 저 구조를 다시 짜보고 싶은 생각이 들었다.
머리아프긴했어도 if문 구조를 생각하면서 예외 상황은 없을지 점검하고 더 나은 구조가 있을지 생각하는 과정이 나름 재미있었다.
이번 포스팅은 여기까지 😎
다음은 이제 이번 포스팅에서 짜둔 구조에 따라 실제로 정보를 입력하는 코드를 짜보자.
이전글: [도서 입력 프로그램] 2. BeautifulSoup 알라딘 도서 정보 수집
다음글: [도서 입력 프로그램] 3-2. Selenium XPATH 찾기
'Project > [Python] 도서 정보 입력 프로그램' 카테고리의 다른 글
[도서 입력 프로그램] 3-3. Selenium 드롭다운 제어 (0) | 2024.05.13 |
---|---|
[도서 입력 프로그램] 3-2. Selenium XPATH 찾기 (0) | 2024.05.09 |
[도서 입력 프로그램] 2. BeautifulSoup 알라딘 도서 정보 수집 (2) | 2024.05.03 |
[도서 입력 프로그램] 1. Selenium 자동 로그인 (feat. 소스코드 민감정보 보안) (4) | 2024.04.30 |
[도서 입력 프로그램] 0. Intro - 파이썬 독학 시작 (0) | 2024.04.29 |