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()

Python OpenCV 빈 화면 만들기

Python bytes.fromhex()

Android Minimum touch target size

tensorflow tf.random.uniform()

tensorflow tf.expand_dims()

KiCad 시작하기 2 (PCB 만들기)

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

Android Java 8+ Api desugaring

Android AVD Ram size change