네이버 베스트셀러 주간 순위에 있는 책의 정보를 가져오는 예제입니다.
첫페이지에 있는 25권의 책목록에서 링크를 추출하여 각 추출된 링크로 접속하여 책이름, 저자, 출판사, 발행일자를 출력합니다.
2018. 9. 9 최초 작성
2020. 2. 8
urlopen 함수를 사용하여 네이버에서 베스트셀러 목록을 가져올 때 "HTTP Error 500" 에러가 발생했던 문제를 해결했습니다.
본 포스트를 작성시에는 문제 없었는데 어느 순간부터인가 안되기 시작한 듯합니다.
2023. 5.21
동작하지 않던 코드를 수정했습니다. 번역서인 경우 번역가가 추가되어 출판사 출력하는 부분에 오류가 있습니다.
기존에 사용하던 urlopen을 대신에 셀레륨(selenium)을 사용합니다.
코드를 실행시키면 코드에서 지정한 웹브라우저를 실제로 띄운 상태에서 웹크롤링이 이루어집니다.
# 실행하기 위해 필요한 패키지 목록입니다. # pip install selenium webdriver-manager beautifulsoup4 from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager from bs4 import BeautifulSoup url = "https://book.naver.com/bestsell/bestseller_list.nhn" driver = webdriver.Chrome(ChromeDriverManager().install()) driver.implicitly_wait(30) # 네이버의 베스트셀러 웹페이지를 가져옵니다. driver.get(url) bsObject = BeautifulSoup(driver.page_source, 'html.parser') # 책의 상세 웹페이지 주소를 추출하여 리스트에 저장합니다. book_page_urls = [] for index in range(0, 25): dl_data = bsObject.find('dt', {'id':"book_title_"+str(index)}) link = dl_data.select('a')[0].get('href') book_page_urls.append(link) # 메타 정보와 본문에서 필요한 정보를 추출합니다. for index, book_page_url in enumerate(book_page_urls): driver.get(book_page_url) bsObject = BeautifulSoup(driver.page_source, 'html.parser') title = bsObject.find('meta', {'property':'og:title'}).get('content') data = bsObject.findAll('span', {'class':'bookTitle_inner_content__REoK1'}) author = data[0].get_text() publisher = data[1].get_text() date = data[2].get_text() print('제목', title, '작가', author, '출판사', publisher, '발행', date) |
실행결과입니다.
제목 헤어질 결심 각본 : 네이버 도서 작가 정서경,박찬욱 출판사 을유문화사 발행 2022.08.05.
제목 흔한남매 11 : 네이버 도서 작가 흔한남매 (원작),백난도 출판사 유난희 발행 미래엔아이세움
제목 불편한 편의점 : 네이버 도서 작가 김호연 출판사 나무옆의자 발행 2021.04.20.
제목 역행자 : 네이버 도서 작가 자청 출판사 웅진지식하우스 발행 2022.06.03.
제목 계속 가보겠습니다 : 네이버 도서 작가 임은정 출판사 메디치미디어 발행 2022.07.22.
제목 마법천자문 53 : 네이버 도서 작가 유대영 출판사 홍거북 발행 아울북
제목 어서 오세요, 휴남동 서점입니다 : 네이버 도서 작가 황보름 출판사 클레이하우스 발행 2022.01.17.
제목 이상한 과자 가게 전천당 15 : 네이버 도서 작가 히로시마 레이코 출판사 쟈쟈 발행 김정화
제목 작별인사 : 네이버 도서 작가 김영하 출판사 복복서가 발행 2022.05.02.
제목 밥 프록터 부의 확신 : 네이버 도서 작가 밥 프록터 출판사 김문주 발행 비즈니스북스
제목 원펀맨(One Punch Man) 25 : 네이버 도서 작가 ONE 출판사 무라타 유스케 발행 대원씨아이
제목 ETS 토익 정기시험 기출문제집 1000 Vol 3 READING(리딩) : 네이버 도서 작가 ETS 출판사 YBM 발행 2021.12.13.
제목 파친코 1 : 네이버 도서 작가 이민진 출판사 신승미 발행 인플루엔셜
제목 기분을 관리하면 인생이 관리된다 : 네이버 도서 작가 김다슬 출판사 클라우디아 발행 2022.04.12.
제목 유럽 도시 기행 2 : 네이버 도서 작가 유시민 출판사 생각의길 발행 2022.07.09.
제목 ETS 토익 정기시험 기출문제집 1000 Vol. 3 Listening (리스닝) : 네이버 도서 작가 ETS 출판사 YBM 발행 2021.12.13.
제목 세상의 마지막 기차역 : 네이버 도서 작가 무라세 다케시 출판사 김지연 발행 모모
제목 입지 센스 : 네이버 도서 작가 박성혜 (훨훨) 출판사 다산북스 발행 2022.07.11.
제목 꽁꽁꽁 아이스크림 : 네이버 도서 작가 윤정주 출판사 책읽는곰 발행 2022.07.15.
제목 물고기는 존재하지 않는다 : 네이버 도서 작가 룰루 밀러 출판사 정지인 발행 곰출판
제목 해커스 토익 기출보카 TOEIC VOCA(토익보카) 단어장 : 네이버 도서 작가 David Cho 출판사 해커스어학연구소 발행 2022.03.14.
제목 에그박사 7 : 네이버 도서 작가 박송이 출판사 홍종현 발행 미래엔아이세움
제목 2022 큰별쌤 최태성의 별별한국사 기출 500제 한국사능력검정시험 심화 : 네이버 도서 작가 최태성 출판사 이투스북 발행 2022.07.15.
제목 인플레이션에서 살아남기 : 네이버 도서 작가 오건영 출판사 페이지2북스 발행 2022.05.23.
제목 어린이를 위한 초등 매일 글쓰기의 힘 : 세줄쓰기 : 네이버 도서 작가 이은경 출판사 상상아카데미 발행 2022.07.20.
'Python > 웹크롤링' 카테고리의 다른 글
웹크롤링시 ConnectionResetError(104, 'Connection reset by peer') 해결방법 (0) | 2024.08.08 |
---|---|
웹크롤링 강좌 – 기상청의 단기예보 가져오기 (0) | 2023.10.22 |
파이썬 웹 크롤링(Web Crawling) 강좌 : 2. Yes24 특정 키워드 책 검색 순위 출력하기 (0) | 2023.10.21 |
파이썬 웹 크롤링(Web Crawling) 강좌 : 1. BeautifulSoup 간단 사용법 (0) | 2023.10.21 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!