-
셀레니움(selenium)으로 웹페이지 요소 찾는 방법Python_etc 2021. 1. 26. 15:56728x90
셀레니움(selenium)으로 웹페이지 요소 찾는 방법
이제는 본격적인 셀레니움을 이용하는 방법에 대해서 알아보도록 하겠습니다. 웹자동화 머신을 만들기 위해서는 프로그래밍 언어를 선택하고, 그에 맞는 도구를 선택해야겠죠.
셀레니움(selenium)이 가낭 대표적이긴 하지만, 조금은 느리다는 것을 생각하면 다른 대안에 대해서도 생각해야 하지만 너무나 강력한 기능들이 포함되어 있어 많이 사용하는 것 같습니다. 저는 개인적으로 셀레니움으로도 충분하지 않을까 생각해보네요.
도구를 활용하는 방법에 대해 익히는 것보다 우선적으로 중요시해야하는 것은 프로젝트의 목적입니다. 만들고자 하는 프로그램이 어떤 기능을 구현해야하는지에 대한 명확한 구상이 없다면 지루하기만 한 재미없는 작업이 될 수 있겠죠.
개인적으로 재미없는 작업은 하고싶지 않습니다. 물론, 일이라면 어쩔 수 없지만 취미라는 범주에서는 왠만하면 '재미'를 추구하는 것이 바람직하지 않을까요. 저는 셀레니움(selenium)을 통해 웹페이지의 요소를 찾을 때가 생각보다 지겨운 작업이 되었는데요. 셀레니움을 통해 요소를 찾는 방법에 대해 정확하게 인지하지 못해던 것이 원인이었던 것 같습니다.
웹페이지 요소 찾는 방법 간략하게 살펴보도록 하겠습니다.
※ 셀레니움(selenium) 공식문저 사이트를 참조했습니다.
※ selenium-python.readthedocs.io/index.html
제가 헤매였던 부분을 간략하게나마 소개하고 본격적인 내용으로 넘어갈게요. 웹페이지는 만드는 사람에 따라 그 구조가 조금씩 차이를 보이고 있습니다. 따라서, 하나의 사이트에 적용된 요소라도 다른 사이트에서는 달리 사용되기도 하고, 위치가 변하는등의 다양성을 보일 수 있습니다. (이 부분을 해결하는 것이 진정한 실력이 아닐까 생각해 봅니다.)
어쨌뜬, class 이름으로 요소를 찾는다고 가정하면, 그 클래스와 같은 이름의 요소가 다양하게 있을 수 있습니다. 따라서 다양한 요소를 한꺼번에 찾는 방법에 대해서도 숙지를 해두시는 것을 추천드립니다. 물론 어렵진 않습니다. 단, 모르면 어렵겠죠.
1. 셀레니움 요소 찾기 - 단일 요소 찾는 방법
- find_element_by_id
- find_element_by_name
- find_element_by_xpath
- find_element_by_link_text
- find_element_by_partal_link_text
- find_element_by_tag_name
- find_element_by_class_name
- find_element_by_css_selector
(단일 요소를 찾은 경우, 요소값을 하나 반환하게 됩니다. 다수의 동일 요소가 존재하면 가장 위에 존재하는 요소를 찾아 출력하게 됩니다.)
2. 셀레니움 요소 찾기 - 여러 요소 찾는 방법
(단일 요소 찾는 것의 함수명중 'element'를 s만 붙이면 여러 요소를 찾을 수 있습니다. 저는 몰랐네요. ㅎㅎ)
- find_elements_by_name
- find_elements_by_xpath
- find_elements_by_link_text
- find_elements_by_partial_link_text
- find_elements_by_tag_name
- find_elements_by_class_name
- find_elements_by_css_seletor
(다수의 요소를 찾는 경우 해당되는 명령에 맞는 모든 요소를 검색하고 출력하게 됩니다. 결과적으로 파이썬에서는 'list'의 type 형태로 결괏값을 반환하게 됩니다.)
※ 기본적으로 셀레니움의 driver를 지정한후, 해당되는 드라이버에 맞는 클래스를 선택하여 함수가 동작하게 되는 방법입니다. 예를들어 driver.find_element_by_class_name(' class name ') 과 같이 사용하시면 되겠습니다.
728x90'Python_etc' 카테고리의 다른 글
웹자동화에서 많이 쓰이는 셀레니움(selenium) 행동 명령 함수들 (0) 2021.02.02 셀레니움(selenium)을 이용한 웹 요소 찾아보기 (1) 2021.02.01 웹자동화 셀레니움(selenium) 이용하기 (0) 2021.01.25 파이썬(python)을 익히며 느낀점 (0) 2021.01.21