작성
·
42
0
연습문제 2번에서 아래 코드로 했을 때 안되는데 이유가 뭔지 모르겠습니다! 어차피 1개라서 반복문을 쓰지 않아도 될까 했는데 안되네요..
import requests
from bs4 import BeautifulSoup
url = 'https://davelee-fun.github.io/'
res = requests.get(url)
soup = BeautifulSoup(res.content, 'html.parser')
items=soup.select('.sitetitle')
print(items.get_text())
(+)
print(item.get_text()) 했을때는 잘 추출되는데 item은 선언한적이 없는데 왜 되는걸까요~?
답변 1
0
안녕하세요. 답변 도우미입니다.
두 가지 질문에 대해 각각 답변 드리겠습니다.
### 1. items.get_text()
로 실행할 때 에러가 나는 이유
코드에서 items = soup.select('.sitetitle')
부분은 .sitetitle
클래스를 가진 모든 HTML 요소를 선택하여 리스트로 반환합니다. 따라서 items
는 리스트 객체이며, 리스트 자체는 get_text()
메서드를 가지고 있지 않기 때문에 에러가 발생합니다.
만약 items
리스트에 들어있는 특정 요소에서 텍스트를 추출하고 싶다면, 예를 들어 첫 번째 요소라면 items[0].get_text()
로 접근해야 합니다.
수정된 코드 예시는 다음과 같습니다:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://davelee-fun.github.io/'
res = requests.get(url)
soup = BeautifulSoup(res.content, 'html.parser')
items = soup.select('.sitetitle')
# 리스트의 첫 번째 요소의 텍스트 추출
print(items[0].get_text())
```
### 2. print(item.get_text())
가 왜 동작하는지
item
변수를 코드에서 선언한 적이 없는데도 동작한다고 말씀하셨는데, 이는 아마도 코드 실행 환경이나 콘솔에서의 이전 실행 상태와 관련이 있을 수 있습니다. 테스트하시다가 item 변수에 뭔가 넣으셔서 그런 것 같습니다. 다시 컴퓨터 껏다 킨 후 테스트해보시면 아마 위 코드에는 item 변수가 선언되어 있지 않아서, 해당 코드는 동작하지 않을 것 같습니다.
감사합니다.
잔재미코딩 드림