TIL) 데브코스 8일차 - bs4

Pori·2023년 10월 25일
0

데엔

목록 보기
3/47

BeautifulSoup4 실습

Install

pip install beautifulSoup4

객체 생성

import requests
from bs4 import BeautifulSoup

res = request.get("http://example.com")
soup = BeautifulSoup(res.text,"html.parser")

# 보기 편한 출력은 prettify를 사용한다.
# print(soup.prettify())

태그 가져오기 - find

요소를 하나 찾고 싶은 경우 find, 여러개의 경우 find_all을 사용한다.

soup.find("h1")
results=soup.find_all("p")

Locator를 활용하기 - id, class

# id를 이용해 요소 가져오기
soup.find("div",id = "results")
# class를 이용해 요소를 가져오기
result = soup.find("div",class = "page-header")

# text 값을 출력
# result.h1.text.strip()

페이지네이션

페이지가 많은 경우 url을 통해 page를 변경 가능하다. 따라서 request.get을 반복적으로 수행하면서 값을 가져오면 된다.

for i in range(1,10):
	res = request.get(f"http://example.com/page={i}")

동적 웹페이지

  • 정적 웹페이지 : HTML 내용이 고정된 사이트를 말한다.
  • 동적 웹페이지 : HTML 내용이 변경되는 사이트. JS를 주로 사용한다.
    =>동적 웹페이지의 경우 비동기 처리가 이루어지기 때문에 데이터의 처리가 늦어지는 경우 데이터가 완전하지 않은 경우가 발생한다.
    파이썬에서는 Selenium을 활용하여 이러한 웹 페이지들을 스크래핑한다.

공부 한 내용

  • beautifulSoup 실습

느낀점&참고

: 시간이 조금 남는 경우에 알고리즘 공부를 같이 하려한다.

0개의 댓글