크롤링을 하다보면 내가 원하는 정보가 svg태그 안에 있는데, svg태그가 검색이 안되는 경우가 있습니다.
아래 태그는 인스타그램에 포함되어있는 좋아요 버튼을 나타내는 svg태그입니다.
분명 존재하죠?
하지만 검색하면 나오지가 않습니다. 왜그럴까요?
왜냐하면 다른 태그와 달리 svg태그를 찾는 방법이 다르기 때문입니다.
//*[local-name()='svg']
svg태그는 //*[local-name()='svg'] 로 검색을 하셔야 합니다. 정말 되는지 볼까요?
output :
아주 많은 태그가 검색된걸 알 수 있습니다.
이중에서 svg태그 안에있는 aria-label속성값이 "좋아요"인 태그를 뽑고 싶다면 어떻게할까요?
(//*[local-name()='svg' and @aria-label="좋아요"]/../..)[1]
svg 속성값 기준으로 찾기
//*[local-name()='svg' and @aria-label="좋아요"]
이때는 and 를 이용해 @표시와 함께 원하는 속성명을 적어주면됩니다.
output :
이제 2개가 남았네요.
이 중 여러분이 태그위치를 확인 후 원하는 최종 태그를 골라주시면 됩니다.
저는 첫번째 태그가 원하는 태그라고 가정해본다면,
(//*[local-name()='svg' and @aria-label="좋아요"])[1]
전체 태그를 () 괄호로 씌어주고 인덱싱을 통해 첫번째 태그를 추출해보았습니다.
output :
이 글과 읽으면 좋은글
'파이썬 > 크롤링' 카테고리의 다른 글
[셀레니움] 구글 로그인 성공하기(with undetected-chromedriver) (0) | 2023.02.06 |
---|---|
[파이썬 셀레니움 기초] 팝업창 닫는 방법 (0) | 2022.09.22 |
[셀레니움 기초] 네이버 쇼핑 크롤링 중 차단?(headless 사용시 주의사항) (0) | 2022.04.07 |
[셀레니움 기초] StaleElementReferenceException 오류 해결 (0) | 2022.04.07 |
[selenium 기초] 셀레니움 ~ is not clickable at point ~ 오류 해결 방법 (0) | 2022.04.06 |
댓글