웹크롤링? 웹 스크래핑!
📌 간단하게 웹에 알아보기
더보기
웹 (World Wide Web)
월드와이드웹(World Wide Web) 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보 공간
간단히 웹(Web)이라고 부르는 경우가 많다.
인터넷에서 HTTP 프로토콜, 하이퍼텍스트, HTML 형식 등을 사용하여 그림과 문자를 교환하는 전송방식을 말하기고 함.
웹 브라우저
HTML, CSS, JS로 이루어진 웹페이지를 사용자에게 보여주기 위한 프로그램
예 : 사파리, 파이어폭스, 크롬, 엣지, 오페라, 웨일 등
웹크롤러
crawl ; 기어가다, 서서히 가다
웹페이지에 연결되어 있는 모든 링크를 다 따라가서
리스트로 만든 후, 인덱싱을 한다.
이것을 데이터베이스에 저장한다.
< 누가한다? 검색엔진의 크롤링 봇!
웹스크래핑
특정 웹사이트 안에서 스크래퍼로 데이터를 다양한 형태로 긁어오는 것.
BeautifulSoup 을 이용한 웹 스크래핑
BeautifulSoup ?
HTML 태그를 파싱 * 해서 필요한 데이터만 추출하는 기능을 제공하는 라이브러리
* HTML 형태의 구문을 분석하는 것
1. 스크래핑 하고자 하는 웹페이지 접속
2. 주소 복사
3. 복사한 주소를 requests.get()안에 추가
import requests # http를 호출할 때 사용하는 모듈
from bs4 import BeautifulSoup
# requests를 이용해 원하는 웹페이지의 소스코드를 불러옴.
res = requests.get("https://news.mt.co.kr/mtview.php?no=2022082609391664699")
# BeautifulSoup을 이용해 파싱
soup = BeautifulSoup(res.content, 'html.parser')
print(soup)
여기서 타이틀(title)을 불러오고 싶다면?
파싱해서 할당한 soup 객체에 find 메서드를 사용해서 title(태그)을 검색한다.
soup.find('title')
BeautifulSoup에서 자주 사용하는 메서드(method)
메서드(Method) | 역할 |
.find | 태그명, 속성정보로 매칭되는 하나의 결과만 가져옴 |
.find_all | 태그명, 속성정보로 매칭되는 모든 결과를 리스트로 가져옴 |
.text | 해당 태그의 텍스트(text)를 가져옴 |
.get | 해당 태그의 특정 속성(attribute)의 값을 가져옴 |
.select | CSS Selector를 통해 매칭되는 모든 결과를 리스트로 가져옴. |
# h2라는 태그를 모두 검색해서 리스트 형태로 저장
h2s = soup.find_all('h2')
h2s
# get을 통해 class라는 속성(Attribute)의 값을 불러옴.
for h2 in h2s:
print(h2.get('class'))
'Python' 카테고리의 다른 글
[차원축소와 군집분석] NMF : Non-negative Matrix Factorization (0) | 2022.10.04 |
---|---|
[Python] 클래스 : 상속(Inheritance) (0) | 2022.08.29 |
[Python] 모듈(Module) (0) | 2022.08.28 |
[Python] Data type : 딕셔너리(Dictionary) 와 셋(Set) (0) | 2022.08.22 |
[Python] 문자열 포맷팅 (0) | 2022.08.21 |