개발 Dev/데이터 분석

[데이터분석/파이썬] requests와 Bueatiful Soup를 이용해서 웹 크롤링하기: yes24에서 책 페이지 수 가져오기

BoBooBoo 2023. 7. 16. 23:27
반응형

* 참고 교재 : 혼자 공부하는 데이터 분석 (한빛미디어)

* 작성일 : 2023년 07월 16일

 

목표

책 『혼자 공부하는 데이터 분석』 의 페이지 수를 Yes24 홈페이지에서 크롤링하기

 

https://www.yes24.com/Product/Goods/116253011

 

혼자 공부하는 데이터 분석 with 파이썬 - YES24

혼자 해도 충분하다! 1:1 과외하듯 배우는 데이터 분석 자습서이 책은 독학으로 데이터 분석을 배우는 입문자가 ‘꼭 필요한 내용을 제대로 학습’할 수 있도록 구성했습니다. 뭘 모르는지조차

www.yes24.com

 

 

Yes24 에서 ISBN13 으로 검색하면 다음과 같은 URL을 이용합니다.

 

 

BueatifulSoup 를 이용해서 이 URL 의 HTML 을 가져와서 Parsing 을 해보겠습니다.

 

 

검색된 결과 화면에서 정보를 가져올 책 『혼자 공부하는 데이터 분석』 을 선택하기 위해 새로운 URL 을 생성합니다.

책의 상세 페이지 URL 은 다음과 같습니다. ISBN10 으로 변환되는군요.

 

 

상세 페이지를 조금 내려보면 아래 "도서 정보" 에서 페이지 수를 확인할 수 있습니다.

이 부분을 크롬에서 F12 를 눌러 HTML 을 확인해봅시다.

 

 

<div id="infoset_specific"> 안에서 <tr> 을 가져오면 될 것 같네요.
 

 

가져온 <td> 에서 쪽수를 분리해봅니다.

띄어쓰기로 split 해서 가장 처음에 있는 값을 가져오면 되겠네요.

 

 

성공!

 

전체 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import requests
from bs4 import BeautifulSoup
 
ISBN13 = "9791169210287"
url = "https://www.yes24.com/Product/Search?domain=BOOK&query={}"
 
# URL에 ISBN13을 넣어서 HTML을 가져옴
= requests.get(url.format(ISBN13))
print(url.format(ISBN13))
 
# yes24 HTML Parsing
soup = BeautifulSoup(r.text, 'html.parser')
 
# 검색 결과에서 "혼자 공부하는 데이터 분석 with 파이썬" 책을 선택
prd_info = soup.find('a', attrs={'class':'gd_name'})
 
# 상세 페이지를 가져옴
url_detail = 'http://www.yes24.com' + prd_info['href']
print(url_detail)
= requests.get(url_detail)
soup = BeautifulSoup(r.text, 'html.parser')
 
# 품목정보 <div> 선택하고
prd_detail = soup.find('div', attrs={'id':'infoset_specific'})
 
# 테이블의 <tr> 을 가져옴
prd_tr_list = prd_detail.find_all('tr')
 
for tr in prd_tr_list:
  if tr.find('th').get_text() == '쪽수, 무게, 크기':
    print(tr.find('td').get_text().split()[0])
cs

 

끝.

 

반응형