패스트캠퍼스

[패스트캠퍼스] 데이터 분석 부트캠프 17기 - 5주차 (7) BeautifulSoup

geraedo 2025. 1. 14. 23:37

주요 학습 내용 요약

웹 데이터 수집 라이브러리

 

1. 웹크롤링 

  • 웹페이지 정보 - Requests 라이브러리 사용
  • HTML 소스 파싱 정보 - BeautifulSoup 라이브러리 사용
  • 사용자는 접속하고 싶은 주소(url) 입력
    -> 브라우저가 주소의 서버에게 페이지 구성 정보 요청(request)
    -> 웹 서버는 코드(html)로 전달(response)
    -> 브라우저는 html 해석해서 사용자 화면에 보여줌

  • BeautifulSoup
    HTML은 태그로 이루어지고, 많은 공백, 변하는 소스때문에 오류 가능성 -> BS가 오류 고친후 전달
    - pip install beautifulsoup4
    - from bs4 import BeautifulSoup
  • HTML 파싱
    soup = BeautifulSoup(html, 'html.parser')
    : html이라는 변수에 저장한 html소스 코드를 .parser를 붙여 변환
    - soup : 모든 데이터 텍스트로 반환
    - soup.contents : soup의 데이터를 리스트로 반환
    - soup.stripped_strings : 공백,형태 제거하여 텍스트로 반환 

  • BeautifulSoup Find 함수
    scraping = soup.find(class_='scraping')
    scraping.string
    - find : 조건에 해당하는 첫 번째 정보만 검색, 클래스 이름 알 경우 class_
    - find_all : 조건에 해당하는 모든 정보 검색
    - string : 태그 내부의 텍스트만 출력

2. 웹크롤링 과정

  • 3단계 과정
    (1) Request : 웹 페이지URL 이용하여 HTML 문서 요청

    (2) Response : 요청한 HTML 문서 회신

    (3) Parsing : 태그 기반으로 파싱 

    - 일별 종가 구현
       # 200일 동안의 일별 종가 정보 가져오는 반복문
       # 1page 당 10일의 일별 종가가 있으므로, 20page 필요
          - 1page에 10개의 <tr>존재, 모든 <tr> parsing_ilst 에 저장 * 20번 반복
          - <tr>안에 정보 : <td align='center'> 날짜헤더, <td class='num'> 가격헤더

    - 일별 시세 테이블 구현 > pandas 이용