728x90
반응형
# 라이브러리 불러오기
from bs4 import BeautifulSoup as bs
import requests
from selenium import webdriver
import pandas as pd
# 함수 정의
def naver_news_crawling(keyword,pages):
try:
chromeOptions_options = webdriver.ChromeOptions() # 크롬 실행
chromeOptions_options.add_argument("headless") # 창을 띄우지 않고 실행
# start수를 1, 11, 21, 31 ...만들어 주는 함수, 페이지 수를 의미
count = pages # 올바른 range 동작을 위해 +1
page = [] # 페이지 수
for i in range(count):
if i == 1:
page.append(i)
elif i > 1:
page.append((i * 10) + 1)
all_text=[] # 기사 제목을 담을 리스트 생성
for page_number in page:
url = 'https://search.naver.com/search.naver?where=news&sm=tab_pge&query=' +\
keyword + '&start='+str(page_number)
response = requests.get(url) # url 요청
html_text = response.text # html 형식으로 가져오기 위함
soup = bs(html_text,'html.parser') # BeautifulSoup 객체 생성
# 1번 파라미터 : html 형식
# 2번 파라미터 : parser 종류 보통 'html.parser' 사용
titles = soup.select('a.news_tit') # 가져오려는 태그를 찾아서 넣어준다.
for title_sen in titles:
title = title_sen.get_text()
all_text.append(title)
all_text = list(all_text)
return all_text
except Exception as e:
print('예외가 발생했습니다.', e)
# 파라미터 정의
keyword = '축구'
pages = 1
# 함수 실행
news_data = naver_news_crawling(keyword,pages)
# 데이터프레임화
pd.DataFrame(news_data,columns=['Article'])
# 결과 값
index,기사
0,[월드컵] 기적같은 승리 뒤…벨기에에서 모로코 축구팬들 난동
1,"서경덕 “FIFA, 일본 축구팬 욱일기 응원 제지 적절” [2022 카타르 월드컵]"
2,"쓰레기만 치우면 뭐하나…日, 욱일기로 축구 응원[포착]"
3,"카타르 팬들, “4년 전 외질에게 어떻게 했지” 독일축구 이중성 비판"
4,"토고 축구영웅 아데바요르 “가나, 한국에 2:1 승”"
5,"[뉴스 속 경제] ""침대축구 잡으려고?"" ""마케팅 효과 높아져"""
6,“한국·가나 죄송합니다” 2차전 주심에 축구팬 절망
7,"욱일기 응원 망신 vs 경기장 뒷정리, 日축구팬 양면성 도마위"
8,"[월드컵] 아프리카TV, BJ·축구선수·인플루언서 생중계"
9,[World Now] 24년 만에 승리하고선‥모로코 축구팬들 난동
반응형
'데이터분석' 카테고리의 다른 글
[우분투 폴더 삭제] rm -r directory (0) | 2024.03.04 |
---|---|
[파이썬 시각화] 워드클라우드(wordcloud) 활용 (0) | 2022.11.28 |
댓글