본문 바로가기

728x90

자동화/Selenium

(30)
중고 할인 기프티콘 인기 목록 자동화로 확인하기 (기프티스타) 자주 이용하는 브랜드 메뉴가 있는 경우 정가보다 싸게 구매할 수 있는 중고 판매 기프티콘 앱을 사용합니다. (기프티스타) 최대 10% 이상 할인된 금액으로 구매할 수 있어 종종 항목들을 체크하는 경우가 있는데 이부분을 자동화로 구현해보면 재밌을 거 같아서 구현해보았습니다. 자주 사용하는 카테고리인 커피, 치킨/피자, 패스트푸드 항목을 선택하여 베스트상품 10개 목록을 추출하는 코드를 작성하였습니다. 우선 웹으로 계속 이용하기 위해 배너를 닫는 코드를 구현한 후 해당 카테고리로 이동할 수 있게 find_elements > class_name 코드를 이용하였습니다. 카테고리 항목 이동 제외하고는 모든 코드가 동일하기 때문에 함수를 사용하여 구현하였습니다. (카테고리 번호만 입력값으로 구분) def giftL..
밴드웹에서 밴드 글을 자동으로 써보기 밴드웹에서 로그인을 성공한 후 만들어진 밴드에 원하는 글을 자동으로 써보는 코드입니다. 정확한 밴드를 설정하는 방법을 찾기가 어려워 find_elements로 여러개를 찾은 후 그중 첫번째 항목으로 첫번째 밴드를 선택하는 코드로 작성하였습니다. driver.find_elements(By.CLASS_NAME, 'bandCover._link')[0].click() #첫번째 밴드 선택 time.sleep(2) Class_name을 보다보면 띄어쓰기로 되어 있을 때가 있는데 그 경우 띄어쓰기를 점(.)으로 변경한 후 코드를 동작하면 해당 element를 찾아서 코드를 실행합니다. 띄어쓰기를 점으로 변경하지 않으면 class_name을 찾을 수 없다는 에러가 뜨기 때문에 테스트 코드 작성시 항상 생각해두어야 하는..
지역 맛집 리스트 자동화로 추출해서 확인하기 (with 카카오맵) 홍대, 강남, 성수, 이태원 등 주요 핫플레이스를 돌아다닐 때 네이버, 카카오, 인스타그램에서 주요 가볼만한 곳을 찾게 되는데요. 그걸 착안해서 이부분을 자동화해보면 재밌을 거 같아서 한번 구현해보았습니다. 주요 시나리오는 아래와 같습니다. 1. 카카오맵에서 특정 검색어로 검색한다. (예: 성수 맛집) 2. 검색결과 리스트를 추출하여 콘솔에 출력한다. 카카오맵의 특정 검색어을 검색한 결과의 URL로 바로 접근하는 방식을 사용하였습니다. 저는 "성수 맛집"을 검색하였는데 상황에 맞게 "홍대역 카페", "강남역 고기" 등 원하는 데이터에 맞게 검색어를 변경하여 사용할 수 있습니다. driver.get('https://map.kakao.com/?from=total&nil_suggest=btn&q=%EC%84%..
AWS 인스턴스 환경 세팅 절차 Selenium 자동화로 구현하기 테스트를 하다보면 가끔 국내 환경 외 국외 환경을 봐야 하는 경우가 있습니다. (미국, 일본, 대만 등..) 이럴때 AWS 무료 인스턴스 환경을 세팅하여 간단하게 확인 후 다시 종료를 하는 작업을 반복하는데요. 이걸 자동화로 구현하면 괜찮을 거 같아서 구현 시도해보았습니다. (예전에 환경 세팅 후 종료하지 않아서 4만원인가 결제했던 아픈 기억이 떠오릅니다 ㅠㅠ) AWS EC2 URL로 진입 후 최대창으로 변경합니다. 최대창으로 변경하지 않으면 추후 버튼이 우측이 아닌 하단에서 노출되어 스크롤 하는 동작을 줄이기 위해 변경하였습니다. driver.get('https://console.aws.amazon.com/ec2/v2/home') driver.maximize_window() time.sleep(2) 로..
Selenium 텍스트 입력창 지우는 방법들 (Clear, Keys..) Selenium 자동화 코드 작성 중 자주 사용하는 코드가 있는데 바로 텍스트 입력된 내용 삭제하는 코드입니다. 텍스트를 입력한 다음 삭제하거나 기존에 입력된 텍스트를 다른 텍스트로 바꾸기 위해 삭제하기도 하는데요. 이 때 사용할 수 있는 코드들을 정리하였습니다. 1. send_keys(Keys.CONTROL, 'a', Keys.BACKSPACE) 키보드 키 중 Ctrl + A 으로 전체 선택 후 BackSpace 키보드 키로 지우는 방법입니다. 컴퓨터 사용시 가장 자주 사용하는 단축키를 참고하여 사용하기 때문에 어렵지 않게 이해할 수 있습니다. Mac 사용자의 경우에는 CONTROL 대신 COMMAND를 사용하시면 됩니다. 테스트를 반복 수행시 간헐적으로 동작하지 않는 단점이 있습니다. Windows ..
Selenium으로 밴드웹 자동 로그인 해보기 Selenium을 사용하여 밴드웹 초기화면에서 로그인 성공까지 자동화를 구현하였습니다. ID가 있는 경우 ID를 우선적으로 사용하였고 없는 경우 Class_name 과 xpath를 적절하게 사용하여 구현하였습니다. 인터넷 환경에 따라 로딩이 느릴 수 있다고 생각하여 동작별로 2초 간격을 추가하였습니다. 로그인 화면은 대부분 비슷하게 구현이 되어있기 때문에 네이버나 다른 사이트 로그인에서도 참고하면 자동 로그인 기능을 사용할 수 있습니다. from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By from webdriver_manager..
Selenium 대기 방식 실행 시간 비교해보기 (Wait, Sleep) Selenium에서 요소를 찾기 위해 시간이 필요하기 때문에 대기 기능을 사용합니다. 이론으로는 장단점을 많이 공부했지만 실행시간이 얼마나 차이 나는지 비교해보기 위해 간단한 코드를 작성하여 테스트하였습니다. 비교대상은 자주 사용하는 대기 기능 3가지입니다. time.sleep Implicit wait Explicit wait 실행 시간을 비교하기 위한 시나리오는 아래와 같으며 각 time은 5초로 설정하고 비교하였습니다. (동일한 시나리오 3번 반복 실행) 네이버 메인 홈으로 크롬 브라우저 열기 (https://www.naver.com) 회원가입 버튼 클릭 약관 모두 동의 후 확인 버튼 클릭 1. time.sleep 가장 편리하게 사용하는 방식이지만 특정 조건 없이 강제로 시간을 소요해서 대기하기 때문..
지역 아파트 순위 자동화로 추출하여 엑셀에 저장하기 (With Python) 이번에 자동화 해 볼 내용은 지역 아파트 순위 목록 추출하여 엑셀에 저장하기 입니다. 부동산에 관심이 많아서 아파트를 많이 보게되는데 이부분을 자동화 공부하면 좋을 거 같아서 시도해보았습니다. 다음 부동산에는 지역 아파트 인기순위를 확인할 수 있는 기능이 있는데 스크롤을 하여 전체 목록을 확인할 수 있는데 이부분을 자동화 해보았습니다. 자동화 시나리오는 아래와 같습니다. 다음 부동산에서 특정 지역 목록 URL 진입 (예: 서울 구로구, 경기 부천시) 우측에 노출되는 아파트 목록 자동화로 추출 추출한 내용 엑셀에 저장 특정 지역 아파트 검색결과를 바로 확인할 수 있는 URL로 진입한 후 sleep 함수를 사용하여 모든 데이터가 노출될 때까지 기다립니다. (wait 기능을 이용할 수 있지만 간헐적으로 모든 ..

728x90