작성
·
416
·
수정됨
0
네이버웹툰 만화 -> 신혼일기 -> 15화 제목을 가져와 보려고 하기와 같이 코드를 작성했습니다만
주피터 노트북에서 run 했을 때 [ ] 라고만 나옵니다 ㅠㅠ 어떻게 해야 할까요??
import requests
from bs4 import BeautifulSoup as bs
url = "https://comic.naver.com/webtoon/list?titleId=812354"
rsp = requests.get(url, verify=False) rsp.raise_for_status()
soup = bs(rsp.text, "lxml")
print(soup.find_all("span", attrs={"class": "EpisodeListList__title--lfIzU"}))
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
해당 코드를 보면 몇 가지 문제가 있어 보입니다.
from bs4 import BeautifulSoup as bs
부분에서 as bs
를 사용하고 계신데, 나중에 BeautifulSoup을 사용할 때 bs
대신 soup
로 사용하고 계셔야 합니다. 따라서 as bs
부분을 삭제하고 soup
라는 변수명을 사용하시는 것이 좋습니다.
requests.get(url, verify=False)
에서 verify=False
를 사용하고 계시는데, 이는 SSL 인증을 건너뛰는 것입니다. 대부분의 경우 필요하지 않기 때문에 이 부분을 제거하시는 것이 좋습니다.
print(soup.find_all("span", attrs={"class": "EpisodeListList__title--lfIzU"}))
에서는 find_all
을 사용하여 span 태그 중 클래스 이름이 EpisodeListList__title--lfIzU
인 요소들을 모두 찾는 것입니다. 그러나 해당 요소들은 모두 상위 요소인 div로 감싸져 있습니다. 따라서 div 태그를 추가하고, 그 안에서 span 태그를 찾도록 코드를 수정하셔야 합니다.
수정한 코드는 아래와 같습니다.
import requests
from bs4 import BeautifulSoup as soup
url = "https://comic.naver.com/webtoon/list?titleId=812354"
rsp = requests.get(url)
rsp.raise_for_status()
html = rsp.text
soup = soup(html, "lxml")
episodes = soup.find_all("div", attrs={"class": "col_inner"})[0].find_all("span", attrs={"class": "title"})
for episode in episodes:
print(episode.text)
위의 코드는 네이버 웹툰의 신혼일기 중 제목(class=“title”)을 가져와 출력하는 코드입니다. 코드를 실행하면 해당되는 제목들이 출력될 것입니다.
참고로, 코드 실행 결과가 []
로 나오는 경우에는 해당 요소들을 찾지 못한 것입니다. 그 경우에는 요소의 선택자나 클래스 이름 등을 확인해보시고, 코드를 적절히 수정하셔야 합니다.
기능에 대한 추가적인 도움이 필요하신 경우, 더 상세한 질문을 주시면 더 많은 도움을 드릴 수 있을 것입니다. 감사합니다.