# beautifulsoup4 설치 : pip install beautifulsoup4
# lxml 설치 : pip install lxml
import requests
from bs4 import BeautifulSoup
url = "https://comic.naver.com/webtoon/weekday.nhn"
res = requests.get(url)
res.raise_for_status()
soup = BeautifulSoup(res.text, "lxml")
# rank1 = soup.find("li", attrs={"class":"rank01"})
# print(rank1.a) # a 태그의 모든 속성을 출력
# <a
# href="/webtoon/detail.nhn?titleId=626907&no=308"
# onclick="nclk_v2(event,'rnk*p.cont','626907','1')"
# title="복학왕-306화 광어인간 4화">
# 복학왕-306화 광어인간 4화
# </a>
#print(rank1.a.get_text()) # a 태그의 text 값만 출력
# 복학왕-306화 광어인간 4화
# print(rank1.next_sibling) # xpath 상 형제 속성에 대한 값을 출력하나 출력하지 못함
# print(rank1.next_sibling.next_sibling) # xpath 상 다음 형제 속성 출력
# rank2 = rank1.next_sibling.next_sibling
# rank3 = rank2.next_sibling.next_sibling
# print(rank3.a.get_text()) # 3번째 항목 출력
# rank2 = rank3.previous_sibling.previous_sibling # rank3의 전 단계 출력
# print(rank2.a.get_text())
# print(rank1.parent) # li의 부모 단계인 (ol)에 해당하는 모든 값 출력
# find_next_sibling : 개행과 상관 없이 바로 다음 단계의 값 출력
# next_sibling.next_sibling 식으로 사용할 필요 없음
# rank2 = rank1.find_next_sibling("li") # rank1 다음 단계 li 태그 값 저장
# print(rank2.a.get_text())
# rank3 = rank2.find_next_sibling("li") # rank2 다음 단계 li 태그 값 저장
# print(rank3.a.get_text())
# rank2 = rank3.find_previous_sibling("li") # rank3 이전 단계 li 태그 값 저장
# print(rank2.a.get_text())
# <a
# onclick="nclk_v2(event,'rnk*p.cont','626907','1')"
# href="/webtoon/detail.nhn?titleId=626907&no=308"
# title="복학왕-306화 광어인간 4화"
# >복학왕-306화 광어인간 4화
# </a>
# 웹 페이지 전체 요소 중에 a 태그이며 text 값이
# "복학왕-306화 광어인간 4화" 인 태그 값 출력
# webtoon = soup.find("a", text="복학왕-306화 광어인간 4화")
# print(webtoon)
[파이썬 웹 스크래핑] Beautifulsoup4 (네이버 웹툰) - 4 (0) | 2020.09.02 |
---|---|
[파이썬 웹 스크래핑] Beautifulsoup4 (네이버 웹툰) - 3 (0) | 2020.09.01 |
[파이썬 웹 스크래핑] Beautifulsoup4 (네이버 웹툰) - 1 (0) | 2020.08.29 |
[파이썬 웹 스크래핑] User Agent (0) | 2020.08.28 |
[파이썬 웹 스크래핑] request 모듈 (0) | 2020.08.26 |
댓글 영역