작성
·
15
·
수정됨
답변 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
의 차이를 가르치고 싶다면, 이 두 메소드의 차이에 대해 검색해 보시면 더욱 깊은 이해가 가능하실 것입니다. 곧 지식공유자께서도 이와 관련하여 더 많은 설명을 제공하실 것입니다.