BeautifulSoup select 사용법 (class, id, 공백있는 속성 값)
BeautifulSoup 라이브러리는 웹 크롤링 작업에 필요한 강력한 기능을 제공한다.
이 라이브러리를 효과적으로 활용하면, 웹 사이트에서 주식 데이터와 같은 원하는 정보를 손쉽게 추출할 수 있다.
관련글 : Cloudflare에 막힌 investing.com 크롤링하기(인베스팅닷컴)
BeautifulSoup 라이브러리에서 제공하는 기능 중 'select' 기능을 사용하는 방법이다.
soup.select() : 해당되는 것들을 모두 선택
'.' = class
'#' = id
예시) div 요소의 class 속성이 'corp_group1'으로 되어 있을 때
soup.select('.corp_group1 > h1')
'>' 기호는 CSS 선택자에서 사용되는 자식 선택자(child selector)로, 하위에 있는 요소를 선택할 때 사용하는 기호이다.
예시) div 요소의 id 속성이 'highlight_D_Y'으로 되어 있을 때
soup.select('#highlight_D_Y > table')
예시) 공백 있는 속성 값을 입력해도 결과가 나오지 않을 때
grid-thm grid-thm-v2로 검색하니 동일한 class 속성 값을 가진 table이 2개 나오는 것을 확인할 수 있었다.
그러나 아래처럼 입력하고 실행했음에도 나오지 않는다. 해당되는 것들을 모두 선택하는 기능임에도 말이다.
클래스명에 띄어쓰기(공백)가 있기 때문인데, 사실 이것은 띄어쓰기가 아닌 멀티플 클래스(Multiple Class)라고 한다.
따라서 띄어쓰기(공백)에 마침표(온점, full stop) '.'을 입력하면 해결된다.