인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

jwhong0228님의 프로필 이미지
jwhong0228

작성한 질문수

파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)

직접 작성해보며 익숙해지기: 크롤링 기본 연습문제 풀기 (업데이트)

연습문제1번

작성

·

15

·

수정됨

0

연습문제 1번

 

Blog와 about 메뉴리스트 출력하기 중

문자열로 변환하는 함수에서

변수.string 과 변수.get_text() 결과값이 다르게 나오는데 차이점 설명 부탁드립니다.

 

 

image.pngimage.png

 

 

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. jwhong0228님.

질문해주신 내용과 관련된 몇 가지 비슷한 질문을 찾을 수 있어 설명을 드리겠습니다. select('li.nav-item')을 사용했을 때 None이 출력되는 문제는 보통 요소에 텍스트가 없거나, 선택된 요소의 구조가 예상과 다르기 때문에 발생할 수 있습니다.

HTML 구조에서 <li> 태그 내부에 텍스트가 직접 포함되어 있지 않고 다른 태그 내부에 있을 경우, .string을 사용하면 None이 반환됩니다. 이럴 때는 .get_text()를 사용하여 해당 요소 내의 모든 텍스트를 가져올 수 있습니다.

아래와 같이 코드부분을 수정하면, 기대하는 결과를 얻을 수 있을 것입니다:

import requests
from bs4 import BeautifulSoup

res = requests.get('https://davelee-fun.github.io/')
soup = BeautifulSoup(res.content, 'html.parser')
items = soup.select('li.nav-item')

for item in items:
    print(item.get_text(strip=True))

get_text(strip=True)를 통해 각 항목의 텍스트를 불러오며 양쪽의 공백을 자동으로 제거합니다. 이 방법으로 각 항목에 포함된 텍스트를 쉽게 출력할 수 있습니다.

기존 강의에서도 a.nav-link는 잘 작동되었다는 점에서, li.nav-item의 구조적 차이만 해결하면 완벽히 이해하실 수 있을 것입니다.

제가 제공하는 답변이 기존 강의와의 차이점을 유념하며, 질문자님의 이해를 돕기 위한 정보가 되었길 바랍니다. 추가적으로 궁금한 점이 있으시면, 질문해 주세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크도 추천해드리고 있습니다, 만족스럽지 않을 수도 있는 점 양해 부탁드립니다. 🙏

추가적으로 왜 get_text().string의 차이를 가르치고 싶다면, 이 두 메소드의 차이에 대해 검색해 보시면 더욱 깊은 이해가 가능하실 것입니다. 곧 지식공유자께서도 이와 관련하여 더 많은 설명을 제공하실 것입니다.

jwhong0228님의 프로필 이미지
jwhong0228

작성한 질문수

질문하기