혼공분석 2주차

탁가이버·2023년 7월 14일
0

혼공분석

목록 보기
2/7

✅혼자 공부하는 데이터 분석 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
💻유튜브 강의: 👉전체 강의 목록

profile
더 나은 세상은 가능하다를 믿고 실천하는 활동가

0개의 댓글