아름다운 수프

I'm Cape·2023년 5월 28일
0

제로베이스 데이터 취업 스쿨 4주차 스터디노트 7호

서론

대체 왜 BeautifulSoup일까?
저번에 Seaborn도 그렇고...
얘네들은 웃긴게 이름 힙하게 지어놓고
왜 그런 이름을 지었는지 설명하는 내용이 없다.(찾아봄)

새롭게 배운 것들

참고 >>> 공식문서

soup = BeautifulSoup(html, "html.parser")

soup.a # a 태그인 element를 찾아줌.
  1. "html.parser" argument
    이 argument를 변경함에 따라 파싱 시 사용되는 프로그램이 달라진다.
    사용할 수 있는 옵션은 "lxml", "lxml-xml", "html5lib"이다.
    두가지 lxml은 C로 작성된 프로그램을 활용한다.
    매우 빠르지만, 추가적인 라이브러리 설치를 요구한다.
    html5lib은 제일 html스러운 방식이다.
    웹 브라우저가 동작하는 방식대로 동작한다고 한다. 느린게 흠.

  2. tag가 attribute가 됨
    soup.a로 실행이 된다는 것은
    soup가 이미 파싱된 상태로 제공된다는 것이다.

그러니까 대충 써보면 이런 식일 것이다.

class BeautifulSoap:
	def __init__(self, raw_xml, type):
    	self.a = self.__find_anchor(raw_xml) # find a tags
        self.p = self.__find_paragraph(raw_xml)
     
    def __find_anchor(raw_xml):
    	# find anchor
    
    def __find_paragraph(raw_xml):
    	# find paragraph

또한, find_allselect가 있다.
이 둘의 차이는 select의 경우 CSS Selector을 사용한다는 것이다.
반면, find_all는 BeautifulSoup 내부에서 정의된 pararmeter을 받는다.

profile
Impact

0개의 댓글