HTML Parser, BeautifulSoup
- 웹 스크랩핑을 할 때, 원하는 요소만 가져올 수 있게 해주는 패키지
- BeautifulSoup을 사용하기 위한 라이브러리 불러오기
# 라이브러리 불러오기
import requests
from bs4 import BeautifulSoup
- BeautifulSoup 객체 생성
# 객체 생성하기
res = requests.get("원하는 사이트의 URL")
soup = BeautifulSoup(res.text, "html.parser")
- <h3> 태그에 해당하는 요소 찾아보기
# <h3> 태그 요소 찾기
Ex_h3 = soup.find("h3")
# <h3> 태그 요소 모두 찾기
all_h3 = soup.find_all("h3")
# 그 중 첫번째 요소
all_h3[0]
id
- 하나의 고유 태그를 가리키는 라벨
- 요소 하나를 지칭하는 특별한 별명 (중복 불가!)
- id를 사용하면 해당 태그 단 하나를 쉽게 가져올 수 있음
- 사용법
# id 사용법
soup.find("div", id = "results")
# div 태그 내의 id가 results인 요소 찾기
class
- 여러 태그를 묶는 라벨
- 유사한 요소들을 구분짓는 별명
- 사용법
# class가 "page-header"인 div 태그 찾기
find_result = soup.find("div", "page-header")
페이지네이션 (pagination) 사용하기
- 많은 양의 정보를 인덱스로 구분하는 기법
import time
for i in range(1, 6):
res = requests.get("URL")
soup = BeautifulSoup(res.text, "html.parser")
question = soup.find_all("li", "question-list-item").find("div", "question").find("div", "top").h4
# for question in questions:
# print(question.find("div", "question").find("div", "top").h4)
# 0.5초의 시간 간격 강제로 발생
# 시간 간격이 없을 경우 페이지 로딩 전에 로직이 동작해 오류 발생 가능
time.sleep(0.5)
728x90
'ssung_데이터 엔지니어링 > 2주차_파이썬으로 웹 다루기' 카테고리의 다른 글
Seaborn - 스크래핑 결과 시각화 (1) | 2023.10.27 |
---|---|
Selenium 설치 및 사용법 (0) | 2023.10.26 |
웹 스크래핑과 웹 크롤링 (0) | 2023.10.24 |
HTML (Hypertext Markup Language) (2) | 2023.10.23 |