• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

이미지 탭 클릭방법

22.01.12 01:12 작성 조회수 310

0

안녕하세요! 네이버 이미지 크롤링 과제 진행하면서 생긴 의문점입니다.

 

저같은 경우에는 강의와는 다르게 네이버 메인페이지를 열고, 검색어를 입력한 다음, 이미지탭을 클릭하는 것으로 구현하고자 하였는데요,

여기서 '이미지탭' 클릭을 css 선택자로 어떻게 표현하면 좋을지 잘 모르겠어서 질문 드립니다!!!

아래 태그 두개는 각각 이미지, 뉴스탭에 해당하는 a태그인데요, 두 태그에는 아이디나 클래스 등이 나와있지 않아 어떻게 이미지태그만을 구분하여 선택하면 좋을지 감이 잘 안잡힙니다...!! 어떻게하면 좋을까요?

<a role="tab" href="?where=image&amp;sm=tab_jum&amp;query=%EC%95%84%EC%9D%B4%EC%9C%A0" onclick="return goOtherCR(this,'a=tab*i.jmp&amp;r=2&amp;i=&amp;u='+urlencode(this.href));" class="tab" aria-selected="false">이미지</a>

<a role="tab" href="?where=news&amp;sm=tab_jum&amp;query=%EC%95%84%EC%9D%B4%EC%9C%A0" onclick="return goOtherCR(this,'a=tab*n.jmp&amp;r=3&amp;i=&amp;u='+urlencode(this.href));" class="tab" aria-selected="false">뉴스</a>

 

찾아본 결과, 개발자 모드 내에서 이미지 탭에 해당하는 태그를 우클릭하여 

copy > copy selector 기능을 활용하여 

#lnb > div.lnb_group > div > ul > li:nth-child(2) > a 를 복붙하면

어찌어찌 과제는 수행 완료 할 수 있는데요!!!

 

copy selector기능을 사용하지 않고 배운대로 해보고자 한다면...?

강사님이라면 어떻게 선택하실지 궁금하여 이렇게 질문작성하게 되었습니다.

감사합니다.

 

답변 1

답변을 작성해보세요.

1

안녕하세요~!

저도 특정 한개 버튼을 클릭할 때는 그냥 copy 기능을 활용합니다.

 

만약에 '특정 텍스트'를 기준으로 클릭하고 싶다면

for 와 if를 조합하면 가능합니다.

 

아래는 링크들 중 '이미지' 텍스트를 찾았을 때 클릭하게 만드는 코드 입니다 ^^

from selenium import webdriver
import time

broswer = webdriver.Chrome("c:\chromedriver.exe")
broswer.implicitly_wait(5)
broswer.get("https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=1&ie=utf8&query=%EA%B3%A0%EC%96%91%EC%9D%B4")

time.sleep(2)
links = broswer.find_elements_by_css_selector("ul.base > li > a")
for link in links:
    if link.text == '이미지':
        link.click()
        break