알라딘 중고서점 가격 스크래핑(파이썬)

2021. 12. 21. 18:36· 파이썬 공부/기초
목차
  1. 알라딘 중고서점 가격 일괄 스크래핑

알라딘 중고서점 가격 일괄 스크래핑

알라딘 중고서점 검색 결과

1. 원하는 책 제목 검색

2. 다섯가지 종류의 가격과 책 표지, 제목을 긁어서

3. 엑셀에 표현.

(표지) 책제목                    새책     eBook   알라딘   광활..    판매자 중고

(그림) 혼자공부하는 파이썬 16300원 14400원 11400원 12000원 13000원

(그림) .........

 

# 가격만 가져오는 프로그램

import urllib.request as req
from bs4 import BeautifulSoup

page_num = 1
'''
엑셀 파일을 생성하는 부분 추가될 곳
'''
while True:
    url = "https://www.aladin.co.kr/search/wsearchresult.aspx?SearchTarget=Used&KeyWord=%ED%8C%8C%EC%9D%B4%EC%8D%AC&KeyRecentPublish=0&OutStock=0&ViewType=Detail&SortOrder=11&CustReviewCount=0&CustReviewRank=0&KeyFullWord=%ED%8C%8C%EC%9D%B4%EC%8D%AC&KeyLastWord=%ED%8C%8C%EC%9D%B4%EC%8D%AC&CategorySearch=&chkKeyTitle=&chkKeyAuthor=&chkKeyPublisher=&ViewRowCount=25&page={}".format(
        page_num)
    html_code = req.urlopen(url)
    soup = BeautifulSoup(html_code, "html.parser")
    # title = soup.select("a.bo3>b")
    # print(title) #출력결과: [<b>혼자 공부하는 파이썬</b>, <b>Do it! 점프 투 파이썬</b>, <b>이것이 취업을 위한 코딩 테스트다 with 파이썬</b>,...]
    books = soup.find_all("div",{"class":"ss_book_box"})
    for book in books:
        # price = book.find_all("a", {"class":"bo_used"}).find_all 판매분류와 가격이 한번에 뽑힌다.
        price = book.select("tr>td>a.bo_used")
        print(price)
    # page_num += 1
    # if len(title) == 0:
    break

위 코드는 얼핏보면 가격만 잘 긁어오는 것처럼 보이지만, 알고보면 엉터리 코드다.

첫번째 책에 가격이 다섯가지 종류가 있는데, 나중에 제목과 가격을 출력할 때 이를 고려하지 않고,

책1, 책1의 가격1

책2, 책1의 가격2

책3, 책1의 가격3 

...

이런 식으로 출력이 된다. 오류가 나지 않아도 확인을 해보면 쉽게 알 수 있다.

 

데이터를 다룰때는 내가 할애할 에너지의 30%정도는 남겨두고, 1차 완성 후에 직접 실행하며 결함이 없는지 확인하는 과정도 중요하다.

 

문제는, 이거를 고치다가 참 많은 오류가 났다.

 

가격을 틀리지 않고 제대로 가져온 코드는 여기에 있다.

 

import urllib.request as req
from bs4 import BeautifulSoup
import openpyxl
import os

page_num = 1

# 엑셀 파일 만들거나 가져오기
filename = './알라딘 중고서점.xlsx'
if not os.path.exists(filename):
    wb = openpyxl.Workbook()
    wb.active.title = "알라딘 중고서점"
    wb.save(filename)
else:
    wb = openpyxl.load_workbook(filename)

sheet = wb.active


url = "https://www.aladin.co.kr/search/wsearchresult.aspx?SearchTarget=Used&KeyWord=%ED%8C%8C%EC%9D%B4%EC%8D%AC&KeyRecentPublish=0&OutStock=0&ViewType=Detail&SortOrder=11&CustReviewCount=0&CustReviewRank=0&KeyFullWord=%ED%8C%8C%EC%9D%B4%EC%8D%AC&KeyLastWord=%ED%8C%8C%EC%9D%B4%EC%8D%AC&CategorySearch=&chkKeyTitle=&chkKeyAuthor=&chkKeyPublisher=&ViewRowCount=25&page={}".format(
    page_num)
html_code = req.urlopen(url)
soup = BeautifulSoup(html_code, "html.parser")
books = soup.find_all("div",{"class":"ss_book_box"})
for i, book in enumerate(books):
    # price = book.find_all("a", {"class":"bo_used"}).find_all 판매분류와 가격이 한번에 뽑힌다.
    price = book.select("table > tr > td")[2].select("table.usedtable01 > tr > td")
    for index, seller in enumerate(price):
        print(seller.string)
        sheet.cell(row=i+1, column=index+1, value=seller.string)
    # print(books)
    # print(title)
    # price = soup.select("a.bo_used>b")

    # for i, j in zip(title, price):
    #     # print(i.string, j.string)
    #     f.write(i.string+","+j.string+"\n")
    # page_num += 1
    # if len(title) == 0:
    # break
wb.save(filename)
wb.close()
# for page_num in range(1,5):
#     html_code = req.urlopen(url.format(page_num))

 

중고서점 가격 일괄 스크래핑

'파이썬 공부 > 기초' 카테고리의 다른 글

파이썬 이중콜론 :: 의미  (0) 2022.06.02
The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_61 sm_70 sm_75 compute_37 에러  (0) 2022.03.01
[python] 알라딘 중고서점 스크래핑-3  (0) 2021.12.21
[python] 알라딘 중고서점 스크래핑-2  (0) 2021.12.21
리스트 옮기기(파이썬)  (0) 2021.01.20
  1. 알라딘 중고서점 가격 일괄 스크래핑
'파이썬 공부/기초' 카테고리의 다른 글
  • The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_61 sm_70 sm_75 compute_37 에러
  • [python] 알라딘 중고서점 스크래핑-3
  • [python] 알라딘 중고서점 스크래핑-2
  • 리스트 옮기기(파이썬)
시도하고 시도
시도하고 시도
시도하고 시도
시도하고 시도하는 파이썬
시도하고 시도
전체
오늘
어제
  • 분류 전체보기 (97)
    • 건축 컴퓨터 비전 (24)
      • 3D Reconstruction (4)
      • ORB-SLAM3 (6)
      • Computer Vision (3)
      • 리눅스 troubleshoot (2)
      • 리눅스 지식쌓기 (6)
      • DSO-SLAM (1)
    • 파이썬 공부 (10)
      • 기초 (6)
    • 음식 (1)
      • 구리 맛집 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • python 들여쓰기 길게
  • 자동들여쓰기
  • 구리 애월식당
  • orb-slam3
  • UX/UI
  • 친절한 음식점
  • MinGW
  • uxui
  • window
  • UIUX
  • python none
  • C++
  • UI/UX
  • 홀수만 남을 때
  • 피그마 입문
  • python 들여쓰기
  • 파이썬 구구단
  • python 초보
  • 리스트 이동
  • 중고서점 가격

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
시도하고 시도
알라딘 중고서점 가격 스크래핑(파이썬)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.