본문 바로가기

혼공단/혼공분석10기

혼공학습단 10기 혼공분석 2주차

반응형

혼공학습단 10기 혼공분석 2주차 

chapter02 기본미션+선택미션 완료

#혼공학습단 #혼공 #혼공분석

 

기본미션

p. 150의 확인 문제 1번 풀고 인증하기

02-2 웹 스크래핑 사용하기

확인문제

  1. 다음과 같은 데이터프레임 df가 있을 때 loc 메서드의 결과가 다른 하나는 무엇인가? 4번번

  1. df.loc[[0,1,2],[‘col1’,’col2’]]
  2. df.loc[0:2,’col1’:’col2]
  3. df.loc[:2. [True, True]]
  4. df.lov[::2, ‘col1’:’col2’]

 

풀이) loc 메서드에는 레이블 배열이나 불리언 배열을 전달 할 수 있다. 또 슬라이스 연산자를 사용할 수 있다. 다만 파이썬의 슬라이스 연산자와 다르게 마지막 항목도 포함한다. 슬라이싱 시작과 끝이 처 번째 항목과 마지막 항목을 의미할 때는 생략할 수 있다. 파이썬의 슬라이스 연산자처럼 스텝을 지정하여 지정한 개수만큼 건너뛰면서 행과 열을 선택합니다.

 

선택미션

p. 137 ~ 138 손코딩 실습으로 원하는 도서의 페이지 수를 추출하고 화면 캡처하기

 

전체 도서의 쪽수 구하기

  1. 온라인 서점의 검색 결과 페이지 URL을 만듭니다.
  2. requests.get() 함수로 검색 결과 페이지의 HTML을 가져옵니다.
  3. 뷰티플수프로 HTML을 파싱합니다.
  4. 뷰티플수프의 find() 메서드로 <a> 태그를 찾아 상세 페이지 URL을 추출합니다.
  5. requests.get() 함수로 다시 도서 상세 페이지의 HTML을 가져옵니다.
  6. 뷰티플수프로 HTML을 파싱합니다.
  7. 뷰티플수프의 find() 메서드로 ‘품목정보’ <div> 태그를 찾습니다.
  8. 뷰티플수프의 find_all() 메서드로 ‘쪽수’가 들어있는 <tr>태그에 들어 있는 ‘쪽수’를 가져옵니다.
  9. 앞에서 찾은 테이블의 행에서 get_text()메서드로 <td> 태그에 들어 있는 ‘쪽수’를 가져옵니다.

 

마무리

2가지 키워드로 정리하는 핵심 포인트

  1. 웹 스크래핑 : 웹사이트에서 필요한 데이터를 추출하는 기술이다. HTML은 구조적이지 않기 때문에 스크래핑으로 데이터로 수집하는데 비교적 많은 노력이 필요하다. 따라서 웹 스크래핑을 사용하기 전에 먼저 공개  API를 통해 사용할 수 있는지 살펴보는것이 좋다.
  2. 뷰티플수프 : HTML 문서를 파싱하는데 사용하는 대표적인 파이썬 패키지이다. 사용법이 쉽고 빠르기 때문에 파이썬 프로그래머들이 즐겨 사용한다. 뷰티플수프는  requests 패키지로 가져온 HTML에서 원하는 태그나 텍스트를 찾는 기능을 제공한다.

 

표로 정리하는 핵심 함수와 메서드

 

함수/메서드 기능
loc 레이블(이름) 또는 불리언 배열로 데이터프레임의 행과 열을 선택합니다. 정수로 지정하면 인덱스의 레이블로 간주합니다. 불리언 배열로 지정할 경우 배열의 길이는 행 또는 열의 전체 길이와 같아야 합니다.
BeautifulSoup.find() 현재 태그 아래의 자식 태그 중에서 지정된 이름에 맞는 첫 번째 태그를 찾습니다. 찾은 태그가 없을 경우 None이 반환됩니다.
BeautifulSoup.find_all() 현재 태그 아래의 자식 태그 중에서 지정된 이름에 맞은 모든 태그를 찾습니다. 뷰티플수프 객체를 함수처럼 호출할 경우 자동으로 find_all()메서드가 호출됩니다. 찾은 태그가 없을 경우 빈 리스트가 반환됩니다.
BeautifulSoup.get_text() 태그 안의 텍스트를 반환합니다.
DataFrame.apply() 데이터프레임의 행 또는 열에 지정한 함수를 적용합니다.
pandas.merge() 데이터프레임이나 시리즈 객체를 합칩니다.

 

반응형