inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용

VIEW탭 클릭하여 페이지 넘어가기(XPATH 사용하여 원하는 텍스트 찾아내는 방법)

xpath 질의

244

동휘김

작성한 질문수 30

0

강사님 매번 강의로 도움많이받고있습니다 감사합니다.

 

개인적으로 일전에 구글을 예를 들어 다양한 키워드에 따라 생성 텝메뉴들이 달라져서 고민을 많이하던때가있었는데

'View탭 클릭하여 페이지넘어가기'강의와 같이 xpath 지정하였을때 '//*[text()="VIEW"]' 입력하면 되는것일까요?
음 현재 네이버가 뷰 서비스를 폐지했는데 만약 블로그를 클릭한다면 '//*[text()="블로그"]' 를 입력하면 클릭이되나요?안되서여ㅜㅜ혹시 도움이될만한 고견주시면 감사드리겠습니다.

python 웹-크롤링 selenium beautifulsoup

답변 1

1

김플

뷰 탭이 없어졌군요..
일단,
driver.find_element(By.XPATH, '//*[text()="블로그"]').click()
이렇게 하면 화면상의 첫번째 '블로그' 텍스트를 가진 요소를 찾아서 클릭을 하게 되는데
이게 우리가 원하는 블로그 탭의 요소가 아닙니다.

print(len(driver.find_elements(By.XPATH, '//*[text()="블로그"]')))

이렇게 작성해서 몇개인지 출력해보면 1개가 아닙니다.
지금 현재 4개가 나오네요.

blogs = driver.find_elements(By.XPATH, '//*[text()="블로그"]')

for blog in blogs:
    print(blog.get_attribute("outerHTML"))

이렇게 해보면 '블로그' 라는 텍스트를 가진 요소를 전부 찾아서 그 요소의 html을 출력합니다.
여기에서 확인해보면 지금 현재 블로그 탭으로 이동하기 위해서 클릭해야 하는 요소는 3번째로 출력됩니다.
인덱스로는 [2] 이렇게 되는거죠.

그렇다는건

driver.find_elements(By.XPATH, '//*[text()="블로그"]')[2].click()

이렇게 해야 클릭이 됩니다.

그리고 검색은 성공을 하셨으니 지금 이 질문을 올리셨을 거라고 생각되지만,
혹시나 하는 마음에 한가지 더 말씀드리자면,
검색 버튼을 클릭하는 태그도 바뀌었네요.

driver.find_element(By.CSS_SELECTOR, "#search_btn").click() 이거 대신

driver.find_element(By.CSS_SELECTOR, ".btn_search").click() 이렇게 넣어야 합니다.

2

동휘김

감사합니다 강사님

멜론 사이트 수집부터 안됩니다

0

70

1

강의 시점이랑 현재랑 네이버 사이트 변화가 많은거 같아서 질문드립니다.

0

65

1

-href 가져오기

0

95

2

수업내용 프로젝트의 완성된 코드는 제공이 안돼나요?

0

160

1

안녕하세요 쿠팡 크롤링 막힌거 같아요 3번돌리니깐 막았어요 해결방법없을까요?

0

3698

1

쿠팡 BeautifullSoup 헤더넣어도 막히네요

0

446

1

네이버 쇼핑 크롤링 1 코드 사용 시, 접속 제한됐을 때의 해결 방법이 궁금합니다.

0

3199

1

추가 강의 업데이트 있나요?

0

247

1

lambda 중에 문의가 있습니다.

0

273

1

텔레그램 sendMessage 시 400에러가 뜹니다.

0

913

2

ftp 로긴 문제입니다. ㅜ

0

418

2

네이버 쇼핑 크롤링 질문입니다.

0

374

1

XPATH 네이버에서 카페 찾는 과정 문의입니다.

1

318

1

셀레니움 By.XPATH 를 이용한 키워드 입력 작성 질문입니다.

0

673

2

쿠팡 이미지 파일 다운받기에서 동일하게 코드 작성 후 요청하였지만 파일 다운로드가 안됩니다.

0

826

2

파이썬에 키워드를 치는게 아닌...

0

278

2

50프로 수강중입니다~

0

223

1

제품 링크를 타고 들어가야 원하는 정보가 나오는 사이트

0

388

2

lst = lst50 + lst100 이거 대신에

0

327

2

증권, 메일 등 서비스 목록을 못가져와요 ㅠㅠ

1

292

1

네이버에 view탭이 업데이트가 됐는지 없어졌네요... ㅠㅠ

1

245

1

선생님이랑 똑같이 적었는데 저는 왜 오류가 날까요?ㅠ

0

358

2

네이버쇼핑 크롤링 문의

0

434

2

asyncio.run() cannot be called from a running event loop 에러 질문 드립니다

0

3918

4