본문 바로가기
프로그래밍 언어/Python

Python - 웹 크롤링이란? (feat.BeautifulSoup)

by nomfang 2021. 1. 15.
728x90
반응형

정적 웹페이지 크롤링 - BeutifulSoup

 웹 크롤링이란?

→ 웹에있는 정보들을 프로그램으로 자동화하여 가져오는 것

→ 스크래핑, 스파이더링이라고도 부르지만 요새는 크롤링이라고 한다

 

정적 웹페이지란?

→ 말 그대로 움직이지 않는 웹페이지 (클릭 등의 이슈가 없는)

→ 여러 페이지를 크롤링할 시 페이지별 규칙적인 주소(url)가 있어야한다

 

크롤링 순서

1.원하는 웹 페이지의 주소 및 html구조 파악 ( 웹페이지에서 개발자도구 - F12 를 눌러 구조 파악)

2.requests 로 웹페이지의 html 정보 수집

3.BeautifulSoup 으로 html구조 분석

 

 

requests

→ 파이썬에서 http요청을 보낼 수 있는 모듈(라이브러리)

→ GET : 정보 조회

→ POST : 정보 생성, 변경

import requests

url = "https://www.naver.com"
req = requests.get(url)

print(req) # url에 get요청,ㅣ 응답을 가져옴 <Response [200]> 200일 경우 정상 응답

print(req.text) # url주소의 html문서 가지오기 -> BeautifulSoup으로 parsing해야함

 

beautifulsoup

html, xml, json등의 문서 구문을 분석하는 모듈(라이브러리)

from bs4 BeautifulSoup

soup = BeautifulSoup(open("req.text"), "html.parser") # html.parser는 html분석


print(soup) # 가져온 html 전체 출력

print(soup.get_text()) # 글자만 가져오기

print(soup.find('p').get_text()) # p태그 내의 글자만 가져오기

print(soup.find("div",class_="lum").find("p").get_text()) # class가 lum인 div태그 내의 p태그의 글자

print(soup.find("div",id="main") # id가 main인 div 태그

 

 

 

 

반응형

댓글