▣ BeautifuSoup
- HTML이나 XML 문서 내에서 원하는 정보를 가져오기 위한 파이썬 라이브러리.
- 설치 : pip install beautifulsoup4
▣ 코딩 패턴
1. BeautifulSoup 클래스 import
2. BeautifulSoup 객체 생성
- 생성시 조회할 HTML 문서 전달
3. 문서내에서 필요한 정보 조회
- 태그이름과 태그 속성으로 조회
- css selector를 이용해 조회
- . 표기법을 이용한 탐색(Tree 구조 순서대로 탐색)
▣ 객체 생성
- BeautifulSoup(html str [, 파서])
- 매개변수
1. 정보를 조회할 html을 string으로 전달
2. 파서
- lxml : 매우 빠르다. html, xml 파싱 가능(xml 파싱은 lxml만 가능)
- 사용시 install 필요
- `pip install lxml`
▣ 문서내에서 원하는 정보 검색
Tag
- 하나의 태그(element)의 데이터를 담은 객체
- BeautifulSoup 조회메소드들의 조회결과 반환타입.
- 아래 조회 함수들을 이용해 조회하면 그 결과를 Tag 객체나 Tag 객체들을 담은 List로 반환한다.
- Tag 객체를 이용해 element로 부터 text나 attribute등을 조회하거나 그 하위 element 들을 추가로 조회할 수 있다.
# 태그의 속성값 조회**
- tag객체.get('속성명')
- tag객체['속성명']
- ex) tag.get('href') 또는 tag['href']
# 태그내 text값 조회**
- tag객체.get_text()
- tag객체.text
- tag.get_text() 또는 tag.text
# contents 속성**
- 조회한 태그의 모든 자식 요소들을 리스트로 반환
- child_list = tag.contents
▣ 조회 함수
태그의 이름으로 조회
- find_all(), find()
- **find_all**(name=태그명, attrs={속성명:속성값, ..})
- 일치하는 모든 태그들을 반환
- **find**(name=태그명, attrs={속성명:속성값})
- 일치하는 태그를 반환
- 일치하는 태그가 여러개일 경우 첫번째 것 하나만 반환한다.
▶ css selector를 이용해 조회
- select(), select_one() - select(selector='css셀렉터')
- css 셀렉터와 일치하는 tag들을 반환한다.
- select_one(selector='css셀렉터')
- css 셀렉터와 일치하는 tag를 반환한다.
- 일치하는 것이 여러개일 경우 첫번째 것 하나만 반환한다.
- `.` 표기법. dom tree 구조의 계층 순서대로 조회
- 위의 두방식으로 찾은 tag를 기준으로 그 주위의 element 들을 찾을 때 사용
'Data Engineering > Crawling' 카테고리의 다른 글
[Crawling] KOSPI 주가 크롤링 (0) | 2020.08.04 |
---|---|
[Crawling] 네이버 OPEN-API를 이용한 네이버 뉴스 크롤링 (1) | 2020.08.04 |
[Crawling] 네이버 개발자 API 가입 (0) | 2020.08.04 |
[Crawling] Daum 뉴스기사 크롤링 (0) | 2020.08.04 |
[Crawling] Request/Urllib (2) | 2020.08.04 |