Python 크롤링

2020. 7. 8. 14:33·프로그래밍 & 개발 환경/Python
목차
  1. 크롤링(crwaling) : 인터넷에서 데이터를 수집하여 받아오는 것
  2. 크롤러 : 크롤링을 하는 프로그램
  3. 파싱(parsing) : 데이터에서 필요한 내용만 추출하는 것
  4.  
  5. urllib 패키지
  6. BeautifulSoup 모듈
  7. robots.txt에서 반드시 확인할 3가지
  8. 영화진흥위원회 robots.txt
  9. urlib
  10.  
  11.  
  12. BeautifulSoup
  13.  
  14. 태그의 내용(text) 추출하기
  15. findAll()
  16. class 속성
  17. 태그의 속성값 추출
728x90

크롤링(crwaling) : 인터넷에서 데이터를 수집하여 받아오는 것

크롤러 : 크롤링을 하는 프로그램

파싱(parsing) : 데이터에서 필요한 내용만 추출하는 것

 

urllib 패키지

  • 인터넷에서 데이터를 받아 오늘 기능들이 들어 있다.

BeautifulSoup 모듈

  • 데이터를 추출(파싱)하는데 필요한 기능들이 들어 있다.

 

크롤링 시작 전 반드시 해당 사이트 url/robots.txt를 확인할 것

robots.txt : 인터넷에서 데이터를 수집하여 받아오는 것

 

robots.txt에서 반드시 확인할 3가지

  • User-agent : 다음 규칙이 적용되는 로봇의 이름
  • Disallow : 차단할 URL 경로
  • Allow : 차단 된 상위 디렉토리의 하위 디렉토리에 있는 URL경로이며 차단 해제 할 디렉토리

 

네이버의 robots.txt

[그림1] 네이버의 robots.txt 2020.07.08일

영화진흥위원회 robots.txt

[그림2] 영화진흥위원호 robots.txt 2020.07.08일

 

urlib

더보기
from urllib.request import urlopen
url ="https://www.kofic.or.kr/"
html = urlopen(url)
print(html.read())

 

[그림3] urllib 예제 출력

 

BeautifulSoup

더보기
from bs4 import BeautifulSoup
from urllib.request import urlopen
url = "https://www.kofic.or.kr/"
html = urlopen(url)
bs_obj = BeautifulSoup(html.read(), "html.parser")
print(bs_obj)

[그림4] BeautifulSoup 예제 출력

 

태그의 내용(text) 추출하기

더보기
# 태그 추출하기

import bs4
html_str= "<html><div>hello</div></html>"
bs_obj = bs4.BeautifulSoup(html_str,"html.parser")
print(bs_obj)
print(bs_obj.find("div"))
print(bs_obj.find("div").text)

[그림5] 태그의 내용 추출 예제 출력

 

findAll()

더보기
import bs4
html_str ="""
<html>
    <body>
        <ul>
            <li>hello</li>
            <li>bye</li>
            <li>welcome</li>
        </ul>
    </body>
</html>
"""
bs_obj = bs4.BeautifulSoup(html_str, "html.parser")
ul = bs_obj.find("ul") # ul태그 찾음
lis = ul.findAll("li") # ul태그안의 li태그 전체 찾기
print(lis)

[그림6] findAll 예제 출력 

 

class 속성

더보기
import bs4
html_str ="""
<html>
    <body>
        <ul class= "greet">
            <li>hello</li>
            <li>bye</li>
            <li>welcome</li>
        </ul>
        <ul class = "reply">
            <li>ok</li>
            <li>no</li>
            <li>sure</li>
        </ul>
    </body>
</html>
"""
bs_obj = bs4.BeautifulSoup(html_str, "html.parser")
ul_reply = bs_obj.find("ul",{"class":"reply"})
print(ul_reply)

[그림7] class 속성 예제 출력

 

태그의 속성값 추출

더보기
import bs4
html_str ="""
<html>
    <body>
        <ul class="see">
            <li><a href="https://www.kofic.or.kr">영화진흥위원회</a></li>
        </ul>
        <ul class ="eat">
            <li><a href="http://www.price.go.kr/tprice/portal/main/main.do">한국소비자원참가격</a></li>
        </ul>
    </body>
</html>

"""
bs_obj = bs4.BeautifulSoup(html_str, "html.parser")
atag = bs_obj.find("a")
print(atag['href'])

[그림8] 태그의 속성값 추출 예제 출력

 

특정 글자 뽑아내기 - 필요한 부분 뽑아내기

 

[그림9] 특정 부분 뽑아내기.
[그림9] 개발자 모드 소스 코드

더보기
import urllib.request
import bs4

url = "https://www.kofic.or.kr/kofic/business/main/main.do"
html = urllib.request.urlopen(url)
bs_obj = bs4.BeautifulSoup(html, "html.parser")
top = bs_obj.find("div",{"class":"gnb"})
print(top)

 

 

[그림10] 특정 글자 뽑아내기 예제 출력

 

728x90
저작자표시 비영리 변경금지 (새창열림)
  1. 크롤링(crwaling) : 인터넷에서 데이터를 수집하여 받아오는 것
  2. 크롤러 : 크롤링을 하는 프로그램
  3. 파싱(parsing) : 데이터에서 필요한 내용만 추출하는 것
  4.  
  5. urllib 패키지
  6. BeautifulSoup 모듈
  7. robots.txt에서 반드시 확인할 3가지
  8. 영화진흥위원회 robots.txt
  9. urlib
  10.  
  11.  
  12. BeautifulSoup
  13.  
  14. 태그의 내용(text) 추출하기
  15. findAll()
  16. class 속성
  17. 태그의 속성값 추출
'프로그래밍 & 개발 환경/Python' 카테고리의 다른 글
  • Python - str lib
  • 쇼핑몰 크롤링
  • Python XML, JSON
  • Python BeautifulSoup 설치 및 개요
포장빵
포장빵
IT공부 및 프로그래밍
  • 포장빵
    포장빵의 IT
    포장빵
  • 전체
    오늘
    어제
    • AI 학습 노트 (113)
      • 기초 수학 (4)
        • 선형대수 (0)
        • 확률통계 (4)
        • 미적분 (0)
        • 최적화 이론 (0)
      • AI & 딥러닝 (1)
        • 이론 (0)
        • 컴퓨터 비전 (0)
        • 자연어 처리 (0)
        • 생성AI (0)
        • 강화학습 (0)
      • 데이터과학 (70)
        • R (47)
        • ADSP (21)
      • 연구 & 자료 (15)
        • 논문 (6)
        • 수료증 (3)
      • 프로그래밍 & 개발 환경 (22)
        • Python (22)
        • 개발도구 (0)
        • 알고리즘 (0)
      • 면접 자료 (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      Python Regular Expression Quick Guide
      k-means clustering
      stylegan2
      지수분포
      확률
      R 도수분포표
      yolov10
      none타입
      단순선형 회귀분석
      확률 분포
      python 주요 데이터 타입
      R 원 그래프
      상관분석
      str lib
      통계량에 의한 자료 분석
      CV
      논문
      매핑형(딕셔너리)
      베르누이분포
      자료의 종류
      Coursera Python Data Structures
      시퀀스형
      R 원 그래프 퍼센트
      k-평균 군집
      Python 크롤링 기초
      다차원 척보법
      Coursera 1
      시계열 모형
      주성분 분석(PCA)
      yolov9
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    포장빵
    Python 크롤링

    개인정보

    • 티스토리 홈
    • 포럼
    • 로그인
    상단으로

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.