인프런 커뮤니티 질문&답변

zzzzz님의 프로필 이미지
zzzzz

작성한 질문수

내 업무를 대신 할 파이썬(Python) 웹크롤링 & 자동화 (feat. 주식, 부동산 데이터 / 인스타그램)

select강의 질문입니다.

작성

·

211

0

soup=bs4.BeautifulSoup(res.text,"lxml") ul_elements=soup.select("ul.lst_total") len(ul_elements) type(ul_elements) ul_elements=ul_elements[0] type(ul_elements) li_elements=ul_elements.select("li") len(li_elements) ------------------------------------------------------------------------------ li_elements1=soup.select("ul.lst_total li") len(li_elements1) <사진1첨부> 1. 점선 위에 부분은 리절트셋에 (객체(tag)안에 li)를 바로 사용하지 못해 tag라는 객체안에서 li를 뽑아낸다.는 방법이고 점선 아래는 CSS를 사용하여 자손 li까지 추출하는것 같은데 점선 위는 결과값이 9가 나오고 점선아래는 19가 나오는 이유가 궁금합니다. 강의에서는 점선위에값과 아래값 결과값이 동일해서요.

2. li_elements2=soup.select("ul.lst_total>li.bx")

len(li_elements2)

13으로 나오는데요.

근데 코드봐도 bx로 시작하는 클래스(사진2)는 없는데 왜 13으로 나오나요?

또 bx로 검색해도 안나와서요.

3. 클래스 2개일 때 구분이 띄어쓰기 _이거인가요?

답변 1

0

DeepingSauce님의 프로필 이미지
DeepingSauce
지식공유자

안녕하세요! 강의 영상만으로는 충분히 헤깔릴수있는 부분이라 한번 더 설명을 드리겠습니다.

- 첫번째: lst_total이라는 클래스 이름을 가진 ul element 중에 "가장 첫번째 놈에 대해서만", 그 놈이 가지고 있는 <li> 자식 갯수가 9개

- 두번째: lst_total이라는 클래스 이름을 가진 ul element "전체에 대해서", 각 ul element가 가지고 있는 <li> 자식 갯수의 총 합이 19개

- 세번재: lst_total이라는 클래스 이름을 가진 ul element "전체에 대해서", 각 ul element의 직속자식중에 bx를 class로 가지고 있는 <li>의 갯수의 총합이 13개

올려주신 스샷의 맨 아래에 보면 <li class="bx _svp_item">이 보입니다. 이거는 빈칸(space)로 구분이 된거고, 해당 li 엘리먼트가 2개의 클래스 (bx, _svp_item) 값을 갖는 것 입니다.

위의 내용들은 강의 영상에 전부 다 설명이 되어있는 부분입니다. 이해가 안되시면 다시한번 반복학습 부탁드려요! :) 

zzzzz님의 프로필 이미지
zzzzz

작성한 질문수

질문하기