상세 컨텐츠

본문 제목

[파이썬 웹 스크래핑] Beautifulsoup4 (네이버 웹툰) - 2

프로그래밍 언어/웹 스크래핑

by 별을 보는 사람 2020. 8. 31. 07:00

본문

반응형
# 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&amp;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&amp;no=308" 
# title="복학왕-306화 광어인간 4화"
# >복학왕-306화 광어인간 4화
# </a>

# 웹 페이지 전체 요소 중에 a 태그이며 text 값이 
# "복학왕-306화 광어인간 4화" 인 태그 값 출력
# webtoon = soup.find("a", text="복학왕-306화 광어인간 4화")
# print(webtoon)

 

 

반응형

관련글 더보기

댓글 영역