Python/크롤링
네이버 뉴스 제목 크롤링
soo15
2023. 6. 10. 21:50
1. 첫번째 페이지만 제목 추출
import requests
from bs4 import BeautifulSoup
# 페이지
page = 1
# 크롤링 하고 싶은 검색어
query = '푸바오'
page_url = f'https://search.naver.com/search.naver?where=news&sm=tab_pge&query={query}&sort=0&photo=0&field=0&pd=0&ds=&de=&cluster_rank=24&mynews=0&office_type=0&office_section_code=0&news_office_checked=&nso=so:r,p:all,a:all&start={page}'
# page_url 읽어오기
# (requests.get(page_url)만 적으면 오류가 날 수 있음, 따라서 User-Agent 를 넣어주어야 한다.
source = requests.get(page_url, headers={'User-Agent':'Mozilla/5.0'}).text
source = BeautifulSoup(source, "html.parser")
# 제목 추출
articles = source.find_all("a", class_ ="news_tit")
for article in articles:
title = article.get_text()
print(title)
Out[1]:
“푸바오, 꼭 중국 보내야…” 사육사가 아기 판다 중국行 찬성하는 이유
'용인 푸씨'답게 한국어로 이모·삼촌 팬들에게 손편지 남긴 푸바오
‘푸바오’와 ‘세로’의 집, 동물원의 딜레마 [금요시사회]
"우리집 맞아? 놀이동산 갈 필요없네" [현장]
중국으로 가는 '용인 푸씨' 판다 푸바오, 왜?
오늘도 즐거운 '푸공주' 푸바오와 두 할아버지
아기 판다 '푸바오' 인기에…에버랜드 방문객 20% ↑
한해 "푸바오로 살아보고 싶어", 황치열 "노홍철 형님이 부러워" (컬투쇼)
한해 “아기 판다 푸바오 되고파, 가만있어도 귀여움 받는 삶”(컬투쇼)
'용인 푸씨' 아기 판다 푸바오 ..."중국 간다는 소식에..." [앵커리포트]
2. 원하는 페이지까지 제목 추출
네이버 뉴스 페이지( {page} )가 10씩 증가하므로 1페이지부터 20페이지는 다음과 같이 증가한다.
for page in range(1,200,10):
print(page)
Out[2]:
1
11
21
31
41
51
61
71
81
91
101
111
121
131
141
151
161
171
181
191
따라서 다음과 같이 크롤링 할 수 있다.
1) 1페이지부터 20페이지까지 네이버 뉴스 제목을 크롤링하기
# 크롤링 하고 싶은 검색어
query = '푸바오'
# 크롤링하여 제목을 list로 추출하기
title_list = []
for page in range(1,200,10):
page_url = f'https://search.naver.com/search.naver?where=news&sm=tab_pge&query={query}&sort=0&photo=0&field=0&pd=0&ds=&de=&cluster_rank=24&mynews=0&office_type=0&office_section_code=0&news_office_checked=&nso=so:r,p:all,a:all&start={page}'
source = requests.get(page_url, headers={'User-Agent':'Mozilla/5.0'}).text
source = BeautifulSoup(source, "html.parser")
source
# 제목 추출
articles = source.find_all("a", class_ ="news_tit")
for article in articles:
title = article.get_text()
title_list.append(title)
# title_list를 데이터 프레임으로 만들기
import pandas as pd
df = pd.DataFrame({'제목' : title_list})
df
Out[3]:
제목 | |
0 | “푸바오, 꼭 중국 보내야…” 사육사가 아기 판다 중국行 찬성하는 이유 |
1 | '용인 푸씨'답게 한국어로 이모·삼촌 팬들에게 손편지 남긴 푸바오 |
2 | ‘푸바오’와 ‘세로’의 집, 동물원의 딜레마 [금요시사회] |
3 | "우리집 맞아? 놀이동산 갈 필요없네" [현장] |
4 | 중국으로 가는 '용인 푸씨' 판다 푸바오, 왜? |
... | ... |
95 | [여기는 베이징] 미국에서 20년 만에 돌아온 판다에 中 ‘들썩’ |
96 | “가지마”…중국으로 시집간다는 판다 ‘푸바오’[이슈픽] |
97 | [리뷰] '다수다' 사육사 밝힌 푸바오 탄생 비화·하이에나 반전 |
98 | '다수의 수다' 아기 판다 푸바오 강철원 사육사 "집사로서 인기 얻어" |
99 | 두 살 생일 맞은 푸바오 |
100 rows × 1 columns
2) 위의 결과를 엑셀로 저장하기
df.to_excel("네이버 기사_푸바오.xlsx", index=False)
" " 안에 작성한 명칭으로 저장된다.