- 4
- 위돈톡애니모
- 조회 수 1421
안녕하세요~
독학으로 파이썬 셀레니움을 사용 하여 웹 페이지 크롤링 중에 막히는 부분이 있어 도움 요청 드립니다 ㅠㅠ
쇼핑몰 페이지 크롤링 시도 중인데요..
특정 브랜드가 있는 경우 검색 결과가 브랜드 영역/상품 리스트 영역 으로 나누어져 보여지고, 그렇지 않은 경우 상품 리스트 영역으로만 보여지는데,
Html 소스 확인 시 브랜드/상품 리스트의 경우 각각 link_brand / list_Wrap class에 포함되어 있고, 상품 리스트만 있는 경우 list_Wrap class만 보여지고
있는데, 이 것을 사용한 조건문을 짜고 있는데 생각 처럼 되지 않고 있네요 ㅠㅠ
제가 짜고 싶은 조건문은 검색 결과에 link_brand class가 있는 경우와 link_brand class가 없는 경우로 조건을 주고 싶은데 브랜드가 없는 검색 결과의
경우 link_brand class가 없어서 오류가 나네요 ㅠ 어떻게 해야 할지 조언 부탁 드립니다. ㅠ
s_url = driver.current_url -> 검색 결과 url
s_brand = driver.find_element_by_class_name('link_brand') -> 브랜드 class name
s_contents = driver.find_element_by_class_name('list_Wrap') -> 상품 리스트 class name
if s_brand in s_url:
print('브랜드 있음')
else:
print('브랜드 없음')
브랜드 class를 찾을 수 없을때 조건문의 else가 수행되도록 할 수는 없을까요?ㅠㅠ
작성자
댓글 4
그리고 제 기억이 맞다면 find_element's'를 사용하면 해당 요소가 없으면 에러를 띄우는 대신에 빈 리스트를 리턴할거에요 ^^
try~except문 대신에 if문을 사용하시려면 이렇게 하시면 될 것 같네요 :)
+) 아래 문서를 참고하세요~!
https://stackoverflow.com/questions/45695874/check-if-element-exists-python-selenium
좋은 답변 감사합니다~^^!! 덕분에 아침부터 속이 뻥 뚫렸네요~ㅎㅎ
잘 해결되셨다니 다행이네요 ^^
크롤링 공부는 끝이 없는 것 같아요~
화이팅입니다!!
안녕하세요?
질문의 의도를 제가 정확하게 파악했는지는 모르겠지만
link_brand 클래스를 지닌 태그가 없는 경우에 올려주신 스크립트의 2번째 줄에서 에러가 발생하여
스크립트 자체가 중단되는 것을 해결하고자 하는 취지로 생각되네요 ^^
위와 같이 try ~ except문으로 해결하는 방법은 어떨까요??
그럼 맛저 드세요~!