이전에 만든 뉴스 스크래핑하기 작성한 거 있지?
거기에 필요한 것들을 넣는 것이다.
openpyxl 기본코드의, 워크북 불러와서 저장하는 것을 넣자.
뭔가 작업하고, 그것을 샘플파일로 만드는 거야.
그런데 저장하는 이름을 키워드로 저장되게 하면 좋겠지.
그럼 이제 남은 문제는 print(a.text, a['href'])를 어떻게 처리하느냐다.
우린 뉴스기사의 제목텍스트와 링크를, 엑셀파일의 행에 아래로 아래로 쌓을 것이다.
일단 저걸 리스트에 넣고 row라 한다.
row = [a.text, a['href']]
이 row를 sheet에 .append 해가지고 붙여준다.
sheet.append(row)
아래는 완성코드. (ctrl+enter로 실행시켜줌)
import requests
from bs4 import BeautifulSoup
from openpyxl import Workbook
def get_news(keyword):
wb= Workbook()
sheet = wb.active
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get(f'https://search.naver.com/search.naver?where=news&ie=utf8&sm=nws_hty&query={keyword}',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
lis = soup.select('#main_pack > section > div > div.group_news > ul > li')
for li in lis:
a= li.select_one('a.news_tit')
row = [a.text, a['href']]
sheet.append(row)
wb.save(f"{keyword}.xlsx")
wb.close()
그럼 이제 우리가 만든 get_news함수를 써보자.
새 코드 만들고.
ctrl+enter 실행하고, 폴더 새로고침 해주면
파일 더블클릭으로 열어보면, 짜잔!
---------------------------------------------------------
삼성전자뿐만이 아닌, 여러 키워드로 저장하고 싶다면?
----------------------------------------------------------
특정 폴더 안에 저장되게 하려면?
wb.save(f"news/{keyword}.xlsx")
슬래시/를 넣어준다.
news 폴더 안에 저장하라는 의미.
※ Colab에 새폴더 만들어서 news로 이름 정해줘야 함.
'개발일지_파이썬for금융인' 카테고리의 다른 글
여러 파일들 한번에 다운받기(압축하기) (0) | 2023.03.20 |
---|---|
파이썬 - 날짜 가져오기 (0) | 2023.03.20 |
openpyxl 기본코드 (0) | 2023.03.17 |
파이썬으로 엑셀 다루기_라이브러리 설치 (0) | 2023.03.17 |
실전 - 뉴스 크롤링하기_다수의 검색어 (0) | 2023.03.17 |