BeautifulSoup4
2022. 9. 27. 12:04ㆍAI/프로그래머스 AI 코스
DOM(Document Object Model)
브라우저는 HTML을 파싱해서 DOM을 만들고 이를 출력한다
HTML 문서를 브라우저가 렌더링엔진으로 웹 문서를 로드하고 tree 구조로 만드는 파싱을 수행하고 DOM 을 생성한다
head, body, 등 각 노드 object들을 tree 구조로 만든것을 DOM이라 한다
DOM을 이용하면 보다 쉽게 HTML manipulate이 가능하다
파이썬으로 HTML을 분석할때는 HTML Parser가 필요하다
https://wit.nts-corp.com/2019/02/14/5522
DOM은 정확히 무엇일까? | WIT블로그
최근 잘못 이해하고 있었던 DOM에 대해 정확한 개념을 정리해 보고자 What, exactly, is the DOM? 문서를 번역해 보았습니다.
wit.nts-corp.com
BeautifulSoup4
from bs4 import BeautifulSoup as bs
import requests
res = requests.get('http://www.example.com') # request
soup = bs(res.text,'html.parser') #parsing, html.parser 전달
print(soup.prettify()) # prettify() 실행
Attributes 확인
soup.body
soup.text
find, find_all
soup.find('h1') # 찾으려는 태그명 전달
soup.find_all('h1') # 찾으려는 태그명 전달
h1 = soup.find('h1') # object 생성후 접근 가능
h1.text
Locator
tagname : 태그 이름
id : 하나의 태그를 가리키는 라벨(unique)
class : 태그의 묶음
soup.find_all('div', id='unique') # id가 일치하는것들만 return
result = soup.find_all('div', 'unique') # class가 일치하는것들만 return
result.strip() # 불필요한 공백 제거
example
yes = requests.get('http://www.yes24.com/24/Category/More/001001007?ElemNo=91&ElemSeq=2')
soup = bs(yes.text, 'html.parser')
div = soup.find_all('div', 'goods_name')
for d in div:
print(d.a.text)