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 태그
반응형
'프로그래밍 언어 > Python' 카테고리의 다른 글
Python) conda 가상환경 생성 및 실행 (0) | 2022.03.21 |
---|---|
Python) conda install 패키지를 찾을 수 없는 경우 (0) | 2022.03.21 |
Python) schedule 스케줄러 (0) | 2022.03.21 |
Python) 자료형 (0) | 2021.05.30 |
Python - .ipynb(notebook)파일을 .py(파이썬)파일로 변경하기 (0) | 2021.01.26 |
댓글