컴공생의 다이어리
[파이썬, Python] BeautifulSoup으로 크롤링(crawling)(2) - select() 옵션 본문
Development/Python & Django
[파이썬, Python] BeautifulSoup으로 크롤링(crawling)(2) - select() 옵션
컴공 K 2021. 5. 29. 00:01BeautifulSoup의 find(), find_all(), .string, get_text()에
이어서 BeautifulSoup의 select() 함수에 대해 알아보자!
select() 함수를 사용하여 원하는 데이터 추출
find() 함수와 find_all() 함수를 이용하여 원하는 태그를 찾는 방법도 있지만 select() 함수를 사용하여 원하는 데이터를 추출할 수 있다. select() 함수를 이용하여 데이터 추출하는 방법의 장점은 다양한 옵션들을 사용할 수 있는 것이다.
아래와 같이 ex1에 html이 저장되어 있다고 하고 select() 함수를 활용해보자!
select('태그이름')
아래는 <p> 태그의 내용을 모두 추출한 것이다.
select('.클래스명')
아래는 클래스 이름이 name1인 태그만 추출한 것이다.
select('상위태그>하위태그>하위태그')
여러 태그가 단계적으로 있을 때 select('상위태그>하위태그>하위태그')를 사용하면 원하는 정보를 얻을 수 있다.
위의 결과 같이 특정 태그가 여러개 있는 경우 리스트의 인덱싱 기능을 사용하면 원하는 정보를 마음대로 사용할 수 있다.
select('상위태그.클래스이름>하위태그.클래스이름')
아래는 <p> 태그의 클래스 이름이 name1이고 <span> 태그의 클래스 이름이 store인 것을 추출한 것이다.
select('상위태그 하위태그')
select함수에서 띄어쓰기를 통해 하위태그를 사용할 경우 하위태그는 자손관계에 있는 태그를 말한다.
select('#아이디명')
아래는 아이디명이 fruits1인 것을 추출한 것이다.
select('#아이디명>태그명.클래스명')
아래는 아이디명이 fruits1이고 <span> 태그의 클래스명이 store인 것을 추출한 것이다.
select('태그명[속성1=값1]')
아래는 <a> 태그의 속성이 href인 것을 추출한 것이다.
728x90
반응형
'Development > Python & Django' 카테고리의 다른 글
[파이썬, Python] datetime의 timezone 대한민국(서울)으로 변경 (0) | 2021.07.17 |
---|---|
Django와 Bootstrap을 사용해 구현한 웹사이트 (0) | 2021.06.28 |
[파이썬, Python] BeautifulSoup으로 크롤링(crawling)(1) - find(), find_all(), .string, get_text() (2) | 2021.05.28 |
[Django] 장고 모델(model) 수정시 - makemigrations, migrate (0) | 2021.05.25 |
[Django] 장고 TIME_ZONE, USE_TZ 설정 (0) | 2021.05.24 |
Comments