# 네이버 뉴스 모니터링 에이전트

네이버 검색 Open API의 뉴스 검색 결과를 최신순으로 대량 수집하고, 네이버 뉴스 본문까지 가져와 엑셀 파일로 저장합니다.

## 준비

1. 네이버 개발자 센터에서 검색 API 사용이 가능한 애플리케이션을 등록합니다.
2. `naver_api_credentials.md` 파일에 발급받은 값을 입력합니다.

```text
NAVER_CLIENT_ID=발급받은_CLIENT_ID
NAVER_CLIENT_SECRET=발급받은_CLIENT_SECRET
```

3. 필요한 패키지를 설치합니다.

```powershell
pip install -r requirements.txt
```

## 계열사 키워드

`woori_affiliates.md` 파일을 수정하면 검색 키워드를 바꿀 수 있습니다. 한 줄에 하나의 계열사명을 넣으면 됩니다.

## 실행

```powershell
python naver_news_monitor.py
```

기본 동작은 전체 고유 뉴스 결과를 최대 1,000건만 최신순으로 수집합니다. 같은 링크가 여러 키워드에서 나오면 `matched_keywords`에 키워드를 합치고 중복 저장하지 않습니다.

```powershell
python naver_news_monitor.py --max-results 1000 --output-dir outputs
```

인증정보 파일명을 바꿨다면 다음처럼 지정할 수 있습니다.

```powershell
python naver_news_monitor.py --credentials-file my_naver_api.md
```

## 출력 파일

실행 시각 기준으로 다음 파일이 생성됩니다.

- `news_YYYYMMDD_HHMMSS-full.xlsx`: API 검색 결과 전체
- `news_YYYYMMDD_HHMMSS-naver-filtered.xlsx`: `link`에 `n.news.naver.com`이 포함된 결과
- `news_YYYYMMDD_HHMMSS-body.xlsx`: 네이버 뉴스 본문 `body` 칼럼 추가 결과
- `news_YYYYMMDD_HHMMSS-body-{키워드}.xlsx`: 본문에 해당 키워드가 포함된 결과

## 참고

네이버 공식 문서 기준 뉴스 검색 API는 `display` 최댓값이 100, `start` 최댓값이 1000입니다. 이 스크립트는 여러 키워드를 순서대로 검색하되 전체 수집 결과가 1,000건에 도달하면 API 검색을 중단합니다.
