이번에는 좀 더 동적으로 크롤링 하기 위한 방법을 알아보려 합니다
seleium을 이용해서 크롤링을 진행하려 합니다
https://hoho325.tistory.com/265
파이썬 크롤링(crawling) :: selenium 이용하여 카카오맵 동적 크롤링 하기 - 1
크롤링을 하려다 보면 페이지 url로 하는게 아니라 동적으로 처리되는 경우가 있습니다 예를들어 다음 지도의 경우 주소는 다 그대로인데 아래의 내용들만 바뀝니다!! 예를들어 강남 스타벅스라
hoho325.tistory.com
selenium의 기초가 궁금하신 분들은 위의 글을 참고해주세요!!
이번에는 탭 전환을 하면서 검색하는 것을 해보려고 합니다
저번에는 검색해서 검색목록의 장소명을 가져오는 것 까지 했었는데요
이번에는 장소의 상세정보까지 확인하는 것을 해보겠습니다
우선 로직을 설명드리겠습니다
1. 검색어 입력
2. 검색 버튼 클릭
3. 검색 목록 뽑아내기
4. 상세보기 버튼 누르기 및 탭 전환하기
5. 탭 끄고 검색 탭으로 전환하기
이전 글과 같은 방법으로 원하는 element의 xpath를 뽑아냅니다
그리고 목록은 beautifulsoup로 뽑습니다
그리고 목록들의 이름도 HTML을 분석해서 뽑아냅니다!
그리고 상세정보 버튼의 element의 xpath를 또 뽑아서 ENTER 키를 넣습니다
글고 이제!! 상세정보 탭으로 전환하는 방법입니다
selenium 탭 전환
switch_to_window 함수를 이용하여 tab을 전환할 수 있습니다
이 함수에는 window name을 인자로 넣어야 합니다.
이 인자는 driver.window_handles라는 변수가 들고 있습니다.
가장 왼쪽 탭은 window_handles[0], 두 번째 탭은 window_handles[1], 그 다음은 window_handles[2]... 이렇게 됩니다
저는 가장 맨 오른쪽의 탭으로 전환하기 위해서 driver.window_handles[-1]을 인자로 넣었습니다
selenium 탭 닫기
상세정보 탭으로 이동한 후에 정보를 다 빼냈다면
다시 다른 장소들을 검색하기 위해서 이전 탭으로 전환하려 합니다
그러기 위해서 탭을 닫고 다시 이전 탭으로 전환할 필요가 있습니다
다시 switch_to를 이용해서 탭을 전환합니다.
이렇게 하면 탭 전환했다가 탭 닫았다가 다시 탭으로 돌아면서 동적으로 크롤링할 수 있습니다
예제들을 잘 활용해보세요!!