커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
2-7 도서 베스트셀러 크롤링 하기 내용 질문
[왕초보] 칼퇴를 부르는 파이썬 업무 자동화
2주차
북마크
임*연
댓글
9
추천
0
조회수
25
조회수
25
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


안녕하세요. 영상대로 따라 하려는데, 현재 교보문고 HTML 페이지 코드가 강의 영상과 좀 다릅니다.

예를 코드스니펫대로 들어간 후 해당페이지에서 검사 클릭 후 해당 도서 클릭하면 <liclass="mt-9 flex min-h-[240px] flex-col justify-center pt-9 border-t border-gray-300 first:mt-0 first:border-t-0 first:pt-0"입니다. 영상에서는 "prod_item" 이고요.

구조가 강의 찍을때랑 지금이랑 달라 진거 같은데, 현재 페이지에서 class 찾아가서 대체 해봤는데, 안 됩니다.

디버깅 좀 해주세요.






작성한 코드 및 에러 메세지


from selenium import webdriver

from selenium.webdriver.chrome.options import Options

from selenium.webdriver.common.by import By


chrome_options = Options()

chrome_options.add_experimental_option("detach", True)

chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"])

driver = webdriver.Chrome(options=chrome_options)


driver.get("https://product.kyobobook.co.kr/bestseller/online?period=001&page=1&per=50")


books_elements = driver.find_elements(By.CLASS_NAME, 'mt-9 flex  min-h-[240px] flex-col justify-center pt-9 border-t border-gray-300 first:mt-0 first:border-t-0 first:pt-0')


for index, book in enumerate(books_elements):

    rank = index + 1 # 0부터 시작하니까 +1을 해서 첫 번째가 1이 되도록 설정

    title = book.find_element(By.CLASS_NAME, 'prod_link font-weight-medium line-clamp-2 text-black hover:underline   font-text-xl mt-2').text

    author = book.find_element(By.CLASS_NAME, 'line-clamp-2 flex overflow-hidden whitespace-normal break-all text-gray-800 fz-14 mt-1').text

    price = book.find_element(By.CLASS_NAME, 'font-weight-bold').text

    print(f"{rank}{title}, by {author} 가격: {price}")

   

driver.quit()    

스파르타 즉문즉답





취소
 공유
취소
댓글 0
댓글 알림
나의얼굴