CSS 선택자를 활용한 데이터 추출
CSS 선택자는 여러 HTML 요소 중에서 특정 요소를 선택합니다.
기본 CSS 선택자
-
클래스 선택자
:.classname
형태로, 해당 클래스를 가진 모든 요소를 선택합니다. -
ID 선택자
:#idname
형태로, 특정 ID를 가진 요소를 선택합니다. -
요소 선택자
:tagname
형태로, 해당 태그를 가진 모든 요소를 선택합니다.
BeautifulSoup에서 CSS 선택자 사용
BeautifulSoup의 select()
메소드를 사용하여 CSS 선택자로 요소를 찾을 수 있습니다.
CSS 선택자로 요소 찾기
soup = BeautifulSoup(html_doc, 'html.parser') # 클래스가 'my-class'인 모든 요소 찾기 class_elements = soup.select('.my-class') # ID가 'my-id'인 요소 찾기 id_element = soup.select('#my-id') # 모든 <a> 태그 찾기 a_elements = soup.select('a')
텍스트 데이터 추출
- CSS 선택자로 찾은 요소에
.text
속성을 사용하여 텍스트 내용을 추출합니다.
텍스트 데이터 추출
soup = BeautifulSoup(html_doc, 'html.parser') # 클래스가 'my-class'인 요소의 텍스트 추출 for el in soup.select('.my-class'): print(el.text) # ID가 'my-id'인 요소의 텍스트 추출 print(soup.select_one('#my-id').text)
속성 값 추출
- 특정 속성(예:
href
,src
)을 가진 요소의 해당 속성 값을 추출할 수 있습니다.
속성 값 추출
# 모든 <a> 태그의 href 속성 값 추출 for a in soup.select('a'): print(a.get('href')) # 이미지 태그(<img>)의 src 속성 값 추출 for img in soup.select('img'): print(img.get('src'))
사용 예시
사용 예시
html_doc = """ <div class="content"> <p class="info">This is a paragraph.</p> <a href="http://example.com">Example Link</a> </div> """ soup = BeautifulSoup(html_doc, 'html.parser') # 클래스 'info'를 가진 <p> 태그의 텍스트 추출 info_text = soup.select_one('.info').text print(info_text) # 모든 링크(<a>)의 URL 추출 for link in soup.select('a'): print(link.get('href'))
실습
화면 오른쪽 코드 실행
버튼을 누르고, 크롤링 결과를 확인하거나 코드를 수정해 보세요!
가이드라인
AI 튜터
배포
디자인
업로드
수업 노트
즐겨찾기
도움말
코드 에디터
코드 실행
코드 생성
실행 결과