✅혼자 공부하는 데이터 분석 with 파이썬
진도: Chapter 02
기본 미션: p. 150의 확인 문제 1번 풀고 인증하기
선택 미션: p. 137 ~ 138 손코딩 실습으로 원하는 도서의 페이지 수를 추출하고 화면 캡처하기
1) 기본 미션: p. 150의 확인 문제 1번 인증
④ 가 답인 이유는 loc 행을 부르는 ::2에서 스텝이 2이므로 0행과 2 행만 불러옴.
2 만큼 건너뛰면서 선택하므로 다른 보기와는 다른 결과가 나옴.
참조:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.loc.html
2) 선택 미션: p. 137 ~ 138 손코딩 실습- 페이지 수 추출 화면 캡처
코드:
#도서 쪽수 구하기
from bs4 import BeautifulSoup
def get_page_cnt(isbn):
url = 'http://www.yes24.com/Product/Search?domain=BOOK&query={}'
r = requests.get(url.format(isbn))
soup = BeautifulSoup(r.text, 'html.parser')
prd_info = soup.find('a', attrs={'class':'gd_name'})
if prd_info == None:
return ''
url = 'http://www.yes24.com'+prd_info['href']
r = requests.get(url)
soup = BeautifulSoup(r.text, 'html.parser')
prd_detail = soup.find('div', attrs={'id':'infoset_specific'})
prd_tr_list = prd_detail.find_all('tr')
for tr in prd_tr_list:
if tr.find('th').get_text() == '쪽수, 무게, 크기':
return tr.find('td').get_text().split()[0]
return ''
get_page_cnt(9791190090018)
def get_page_cnt2(row):
isbn = row['isbn13']
return get_page_cnt(isbn)
page_count = top10_books.apply(lambda row: get_page_cnt(row['isbn13']), axis=1)
page_count.name = 'page_count'
print(page_count)
top10_with_page_count = pd.merge(top10_books, page_count,
left_index=True, right_index=True)
top10_with_page_count
보너스:
친절한 해선샘
🙋♂️Q&A: 박해선 저자님의 혼공분석 github
💻유튜브 강의: 👉전체 강의 목록