kar7mp5

[Notion] 노션 뉴스 크롤링 라이브러리 제작 일기 본문

Python

[Notion] 노션 뉴스 크롤링 라이브러리 제작 일기

kar7mp5 2024. 7. 20. 12:53
728x90

라이브러리 제작 동기

평소에 협업 할 때 Notion, 혼자 사용할 때 Obsidian을 사용하였다.
그러던 중 Google MLB 모임에서 Notion을 잘 활용하는 분을 보고 Notion 자동화에 관심이 생겼다.

또한, 최근에 편향적으로 뉴스를 선택한다는 점을 느꼈다. 자동화 봇을 통해 뉴스를 불러오면 이러한 문제해결이 가능하다고 생각하였다.


라이브러리 소개

설치

https://pypi.org/project/notion-news-crawler/

 

notion-news-crawler

Notion news mecro

pypi.org

 

pip install notion-news-crawler
개발 Github

https://github.com/kar7mp5/Notion-News-Crawler

 

GitHub - kar7mp5/Notion-News-Crawler: Notion news crawler

Notion news crawler. Contribute to kar7mp5/Notion-News-Crawler development by creating an account on GitHub.

github.com

API 설정

Naver API와 Notion API를 발급받고 환경변수(.env 파일) 작성하여 사용한다.

 

Naver API
Naver API docs
Naver Application

 

Notion API
Notion API

 

환경변수(.env 파일) 설정

# Notion
NOTION_TOKEN='YOUR NOTION TOKEN'
NOTION_DATABASE_ID='YOUR NOTION DATABASE ID'

# Naver
X_NAVER_CLIENT_ID='YOUR NAVER CLIENT ID'
X_NAVER_SECRET='YOUR NAVER SECRET KEY'

라이브러리 사용

from notion_news_crawler import NaverAPI, UploadToDataBase, ResetDatabase

if __name__=='__main__':
    reset_database = ResetDatabase()
    reset_database.delete_all_pages()

    for subject in ['Economy', 'Science', 'Society', 'Politics', 'Stock']:
        naver_api = NaverAPI(subject, 100)
        news_data = naver_api.parse_data(naver_api.get_news())

        upload_to_database = UploadToDataBase(news_data)
        upload_to_database.add_to_notion()

Notion 적용 화면

 

728x90