Beautifulsoup4: 두 판 사이의 차이

학교의 모든 지식. SMwiki
둘러보기로 이동 검색으로 이동
편집 요약 없음
 
1번째 줄: 1번째 줄:
{{파이썬}}
===옮김===
 
==개요==
HTML페이지로부터 정보를 추출한다.
 
태그, class, id 같은 속성으로 필요한 데이터에 접근한다.
 
크롤링은 requests 모듈로도 가능하지만, 코드를 파이썬이 이해하는 구조로 바꾸어주진 못한다. 때문에 사용하는 도구. 데이터는 requests나 다른 모듈로 불러오고, 분석을 BeautifulSoup에서 수행한다.
 
 
pip install beautifulsoup4
 
파서 라이브러리를 골라 사용할 수 있는데 pip install lxml 로 설치해 사용한다.(다양한 파서 종류가 있으니, 적절한 것을 찾아 사용하면 된다.)  파서는 lxml을 많이 사용하는 듯.<br />
 
==사용==
 
===기본 사용법===
{| class="wikitable"
|+
!과정
!설명
!방법
|-
|url 열기
|url 문서를 연다.
뷰티플 스프를 불러오는 과정에 유의하자.
|<syntaxhighlight lang="python">
from bs4 import BeautifulSoup
from urllib.request import urlopen
 
with urlopen(url) as 문서:  # 이처럼 열어 사용한다. with을 사용하면 save()를 따로 할 필요가 없다.
    명령
</syntaxhighlight>
|-
|BeautifulSoup와 연결
|특정 html 문서를 파서와 연결한다.
|<syntaxhighlight lang="python">
html = BeautifulSoup(문서, lxml)  # 파서 라이브러리를 lxml로 지정해 사용한다.
</syntaxhighlight>
|-
|태그 찾기
|위 명령 부분에 작성한다.
find_all() 혹은 find() 사용.
|<syntaxhighlight lang="python">
내용 = html.find('찾을태그', class_='찾을클래스')
</syntaxhighlight>find()는 가장 위에 있는 것 하나만 찾는다.
 
find_all()은 결과를 리스트로 반환한다.
 
 
옵션에서 class 대신 class_를 사용하는 것은 파이썬 내부에 class라는 명령이 있기 때문이다.
 
 
찾아내면 태그를 통째로 가져오는데, 택스트만 추출하려면 여기에 다시 .text 로 텍스트 속성에 접근해야 한다.
|-
|
|
|
|}
 
===기타 사용법===
{| class="wikitable"
!의도
!설명
!방법
|-
|하위 속성에 접근
|닷 문법으로 하위태그에 접근할 수 있다.
|<syntaxhighlight lang="python">
내용.a  # 찾은 내용 안의 a태그에 접근한다.
</syntaxhighlight>
|-
|
|
|
|}

2021년 4월 3일 (토) 11:36 기준 최신판