반응형

네이버 베스트셀러 주간 순위에 있는 책의 정보를 가져오는 예제입니다. 

첫페이지에 있는 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.

 

반응형

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.

도움이 되셨다면 토스아이디로 후원해주세요.
https://toss.me/momo2024


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts