반응형
* 참고 교재 : 혼자 공부하는 데이터 분석 (한빛미디어)
* 작성일 : 2023년 07월 16일
목표
책 『혼자 공부하는 데이터 분석』 의 페이지 수를 Yes24 홈페이지에서 크롤링하기
https://www.yes24.com/Product/Goods/116253011
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을 가져옴 r = 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) r = 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 |
끝.
반응형
'개발 Dev > 데이터 분석' 카테고리의 다른 글
[데이터분석/파이썬] 판다스에서 데이터프레임의 특정 행(row)과 열(column)을 삭제하기 (3) | 2023.07.23 |
---|---|
[데이터분석/파이썬] 도서 정보 OpenAPI 사용하기 (도서관 정보나루) (0) | 2023.07.13 |
[데이터분석/파이썬] XML 포맷 다루는 방법 (xml.etree.ElementTree, 판다스 read_xml) (0) | 2023.07.09 |
[데이터분석/파이썬] json 포맷 다루는 방법 (json, pandas) (0) | 2023.07.09 |
[데이터분석/파이썬] csv 파일을 Pandas 데이터프레임으로 읽기 / 데이터프레임을 csv 파일에 쓰기 (0) | 2023.07.09 |