강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

sarajh0523님의 프로필 이미지
sarajh0523

작성한 질문수

네이버 쇼핑 정보 크롤링 중 '요소를 찾을 수 없는 오류'

작성

·

343

0

안녕하세요 강사님! 올려주신 강의 잘 수강하고 있습니다.

 

강사님께서는 네이버 쇼핑 사이트에서, 안나플러스 4GF 남자 스킨 제품 리뷰를 크롤링하셨는데

저는 네이버 쇼핑 사이트에서, 설화수 윤조 에센스 6세대 90ml 제품 리뷰 크롤링을 하며 강의 내용을 복습하려고 했습니다.

 

따라서 이렇게 코드를 변경해보았는데요. (이 외에 강사님 코드 중 변경한 부분은 없습니다.)

############################################################################################################
name                = ['설화수 윤조 에센스 6세대 90ml']
ns_address          = "https://search.shopping.naver.com/catalog/41452071623?&NaPm=ct%3Dlom567qo%7Cci%3D0626056d8aed283141db9c13254eb1ca5283307e%7Ctr%3Dslcc%7Csn%3D95694%7Chk%3D20ea68fdd5b7cd13a1caaf25826165e0d0bdd99f"
shoppingmall_review = "/html/body/div/div/div[2]/div[2]/div[2]/div[3]/div[2]/div/div[2]/ul/li[5]/a"
category_total      = "/html/body/div/div/div[2]/div[2]/div[2]/div[3]/div[7]/div[2]/div[2]/ul/li[1]/a"
############################################################################################################

 

이런 오류가 발생했습니다.

---------------------------------------------------------------------------
NoSuchElementException                    Traceback (most recent call last)
<ipython-input-9-b59caa4ea12b> in <cell line: 2>()
      1 # 2023.05.08 변경 find_element_by_xpath TO find_element
----> 2 driver.find_element(By.XPATH, category_total).click() #스크롤 건드리면 안됨
      3 cnt=1
      4 page=1

2 frames
/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/errorhandler.py in check_response(self, response)
    243                 alert_text = value["alert"].get("text")
    244             raise exception_class(message, screen, stacktrace, alert_text)  # type: ignore[call-arg]  # mypy is not smart enough here
--> 245         raise exception_class(message, screen, stacktrace)

NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div/div/div[2]/div[2]/div[2]/div[3]/div[7]/div[2]/div[2]/ul/li[1]/a"}
  (Session info: headless chrome=90.0.4430.212); For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
Stacktrace:
#0 0x57930a7c37f9 <unknown>
#1 0x57930a7633b3 <unknown>
#2 0x57930a4ab016 <unknown>
#3 0x57930a4df81e <unknown>
#4 0x57930a5158fb <unknown>
#5 0x57930a502ded <unknown>
#6 0x57930a5139e1 <unknown>
#7 0x57930a502c93 <unknown>
#8 0x57930a4d4ce4 <unknown>
#9 0x57930a4d64d2 <unknown>
#10 0x57930a78f542 <unknown>
#11 0x57930a79ece7 <unknown>
#12 0x57930a79e9e4 <unknown>
#13 0x57930a7a313a <unknown>
#14 0x57930a79f5b9 <unknown>
#15 0x57930a784e00 <unknown>
#16 0x57930a7b65d2 <unknown>
#17 0x57930a7b6778 <unknown>
#18 0x57930a7cea1f <unknown>
#19 0x7cccaee40ac3 <unknown>
#20 0x7cccaeed2a40 <unknown>

 

캡쳐본 첨부합니다.

Screen Shot 2023-11-05 at 8.31.58 PM.png뭐가 문제고, 어떻게 해결하면 좋을까요?

답변 기다리겠습니다. 감사합니다!

답변 1

0

안녕하세요 sarajh0523 님, 인프런 AI 인턴이에요.

오류 메시지를 보니 해당하는 요소를 찾을 수 없다는 NoSuchElementException가 발생하였습니다. 이는 크롤링하려는 요소의 XPath가 변경되어 해당 요소를 찾지 못하는 것으로 보입니다.

해결 방법으로는 다음을 시도해볼 수 있습니다:
1. 네이버 쇼핑 사이트의 업데이트로 인해 XPath가 변경되었을 수 있으므로, 변경된 XPath를 확인해야 합니다. 네이버 쇼핑 사이트에서 원하는 요소의 XPath를 다시 확인해보세요.
2. 변경된 XPath를 코드에 반영해야 합니다. 수정한 코드에서 변경된 부분인 category_total의 XPath를 확인하고 수정해주세요.

만약 크롤링 코드에서 다른 부분도 변경이 있었다면 해당 부분도 함께 확인하시기 바랍니다.

이외에도 웹사이트의 구조 변경, 네트워크 연결 등 다양한 원인으로 인해 크롤링이 정상적으로 동작하지 않을 수 있습니다. 웹사이트와의 연결이 원활하지 않은 경우에는 다시 시도해보거나 시간을 조금 두고 다시 시도해보는 것도 방법일 수 있습니다.

위의 방법들을 시도해보고도 문제가 해결되지 않는다면, 더 자세한 정보를 얻기 위해 오류 발생 부분 근처 코드와 함께 풀 에러 메시지를 알려주시면 더 도움을 드릴 수 있을 것입니다. 감사합니다!

sarajh0523님의 프로필 이미지
sarajh0523

작성한 질문수

질문하기