Python bs4.BeautifulSoup()

사용 버전 : Python 3.6.8
사용 프로그램 : Atom 1.35.1 x64


파이썬 bs4.BeautifulSoup()에 대해서 알아보겠습니다.

괄호 안에는 markup, features, builder, parse_only, from_encoding, exclude_encodings, **kwargs가 들어갑니다.

bs4.BeautifulSoup()는 HTML, XML, HTML5등의 데이터를 추출하는데 사용합니다.

'markup' 속성에는 markup 언어 문자열이나, 파일이 들어갑니다.
markup 언어란, 태그를 사용하는 언어를 나타내며, 대표적인 게 HTML(Hypertext Markup Language)입니다.









markup 속성만 사용할 시, BeautifulSoup가 알아서, parser를 찾아서 적용합니다.
물론 잘못된 parser를 사용할 수 있습니다.


parser를 지정해 주는 속성이 feature 속성입니다.
'feature' 속성에는 'lxml', 'lxml-xml', 'html.parser', 'html5lib', 'html', 'html5', 'xml'등이 들어갑니다.
기본 parser 용 내장 library는 'html.parser'입니다.

다른 나머지를 사용하고 싶으시다면, 따로 설치해주셔야 합니다.









보기 좋게 정렬을 해준 것을 알 수 있습니다.

'builder' 속성은 사용하지 않습니다.

'parse_only' 속성을 이용하면, 원하는 태그만 찾고, 표현할 수 있습니다.
parse_only에는 bs4.SoupStrainer()가 들어갑니다.


bs4.SoupStrainer()의 설명은 아래에서 보실 수 있으십니다.








a tag가 있는 부분만 찾아보겠습니다.









'from_encoding' 속성을 이용하면, 불러온 문서를 해독할 encoding을 정해줄 수 있습니다.
생략할 시, 자동으로 찾는데, 잘못된 인코딩으로 해독할 수 있습니다.

인코딩 종류는 여기를 참고하시면 됩니다.
https://shwoghk14.blogspot.com/2020/08/python-encoding-types.html



한번, iso8859_2 인코딩을 써보겠습니다.



글자가 깨진 것을 볼 수 있습니다.

'exclude_encodings' 속성을 사용하면, 이 인코딩은 제외해라는 뜻입니다.
즉, 무슨 타입인지는 모르지만, 이것만은 절대 아니다 할 때 넣어주면 됩니다.
적지 않으면, BeautifulSoup가 자동으로 설정하며, 잘못 설정될 수도 있습니다.







'kwargs' 속성은 Beautiful Soup 3 사용자를 위해, 변경된 명령어를 알려줍니다.
Beautiful Soup 4에서는 사용되는 명령어가 없습니다.


3에서 사용했던 kwargs로는 'convertEntities', 'markupMassag', 'smartQuotesTo', 'selfClosingTags', 'isHTML'이 있습니다.













위와 같이, 친절히 다른 기능을 사용해라고 알려줍니다.


끝.




카테고리: Python, bs4

댓글

이 블로그의 인기 게시물

Python urllib.parse.quote()

KiCad 시작하기 4 (기존 회로도 수정 및 추가)

Android Compose Coil library

KiCad 시작하기 1 (회로도 만들기)

Android Notification with Full Screen

iOS Swift callAsFunction

Forensics .pyc 파일 .py로 복구하기

iOS Error Undefined symbol Testing.Trait

Android Custom IME(Input method editor) 만들기

Android Compose automation for getting localized images to use on Play Store app image