basic/python

python 05 [실습03] 네이버뉴스 크롤링

못지(Motji) 2021. 8. 24. 23:33

# 빅데이터 수집 (정적인 데이터 수집 버전)

1. requests.get() 메소드로 웹페이지 요청

2. BS 으로 파싱

3. find/find_all/select 이용하여 원하는 데이터 검색 추출

# 네이버 뉴스
#1. 라이브러리 임포트
import requests
from bs4 import BeautifulSoup

#2. 페이지요청
url = "https://news.naver.com/main/read.naver?mode=LSD&mid=shm&sid1=105&oid=277&aid=0004958097"
headers = {"user-agent" : ""}
res = requests.get(url, headers=headers)
#print(res)
#print(res.status_code)
#print(res.content)

#3. 파싱
soup = BeautifulSoup(res.content, 'lxml') # res는 객체 타입이기 때문에 content로 전달해야함
#print(soup)
print(soup.find('title')) # 태그명으로 가져오기
print(soup.find('h3', id='articleTitle').text) # id값으로 가져오기 # text만 가져오고싶으면 .text
# 본문내용 출력하기
content = soup.find('div', id='articleBodyContents').text
print(content)
# content = content.replace('\n','')
print("=" * 100)
content = content.strip()
print(content)
h3 = soup.select('#articleTitle')
#4. 정제 > 수집한 데이터를 쓰기편한 원하는 형태로 가공하기 : 빅데이터 전처리 과정
# 브라우저를 통해서 요청하지 않았기 때문에 헤더정보가 없어서 난 오류, 헤더정보가 없이 페이지 요청했을시에는 응답하지 않도록 네이버가 막아놓은것

🖥️ console 출력