ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] BeautifulSoup
    Back/Python 2023. 4. 19. 17:40

    BeautifulSoup

    • 마크업언어(HTML,XML) 문서를 파싱하고 검색할 수 있는 라이브러리
    • 간단하고 쉬운 인터페이스를 제공한다
    • 파이썬으로 구현되어 있다
    • 파이썬 표준 라이브러리인 html.parser 와 다른 파서를 지원한다 (lxml , html5lib)

     

    BeautifulSoup 와 유사한 라이브러리

    lxml - C로 구현된 파서로 빠르고 메모리 효율이 좋다
    - 복잡하고 덜 직관적인 인터페이스를 제공
    - 크롤링 프레임워크인 Scrapy에 내장되어 있다
    html5lib - 파이썬으로 구현된 파서, 다른 파서에 비해 느리다
    - HTML 파싱에 특화되어 있다

     

    # cli> pip install beautifulsoup4
    
    from bs4 import BeautifulSoup
    
    soup = BeautifulSoup('<b class="boldest">Extremely bold</b>' , 'html.parser' )
    
    tag = soup.b         # 태그접근
    tag.get("name", "-") # 속성접근 -> "-"
    tag.text             # 텍스트 접근 -> "Extremely bold"
    tag.name             # 태그 이름 접근 -> "title"
    
    soup.find("b")
    soup.find("id="link3")
    
    • BeautifulSoup(markup, parser)
      parser 사용법 특징
      html.parser BeautifulSoup(markup, "html.parser")  
      lxml BeautifulSoup(markup, "lxml")
      BeautifulSoup(markup, ["lxml", "xml"])
      BeautifulSoup(markup, "xml")
      빠르다
      html5lib BeautifulSoup(markup, html5lib) 유효하지 않은 태그의 짝을 맞춰 준다
      </p> -> <p></p>
    • prettify() : 들여쓰기를 적용해 HTML 코드를 출력
    • select_one(selector) / select(selector)
    • find({ name, attrs, recursive, text, kwargs }) /
      find_all({ name, attrs, recursive, text, limit, kwargs })
      • name : 태그 이름 혹은 리스트, 정규표현식, 함수 등으로 검색 "div"
      • attrs : 속성 이름과 값으로 검색 {'class':'box'}
      • recursive : 자식 태그까지 검색할 지 여부입니다. 기본값은 True
      • text : 태그 안의 텍스트 내용으로 검색합니다.
      • limit : 반환할 요소의 최대 개수입니다. 기본값은 모든 요소를 반환합니다.
      • keyword : 다양한 속성 검색을 위한 인자 (id='some_id’)
    • get(name {, default}) : 속성 이름으로 값을 반환한다. 없을 경우 default 반환

    'Back > Python' 카테고리의 다른 글

    [Python] selenium  (0) 2022.12.21
    [Python] requests  (0) 2022.12.20
    [Error] pg_config executable not found.  (1) 2022.10.05
Designed by Tistory.