https://www.yonhapnewstv.co.kr/browse/feed/

import React, { useState } from "react"; export default function App() { const [rssUrl, setRssUrl] = useState(""); const [items, setItems] = useState([]); const getRss = async (e) => { e.preventDefault(); const urlRegex = /(http|ftp|https):\/\/[\w-]+(\.[\w-]+)+([\w.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-])?/; if (!urlRegex.test(rssUrl)) { return; } const res = await fetch(`https://api.allorigins.win/get?url=${rssUrl}`); const { contents } = await res.json(); const feed = new window.DOMParser().parseFromString(contents, "text/xml"); const items = feed.querySelectorAll("item"); const feedItems = [...items].map((el) => ({ link: el.querySelector("link").innerHTML, title: el.querySelector("title").innerHTML, date: el.querySelector("pubDate").innerHTML, })); setItems(feedItems); }; return ( <div className="App"> <form onSubmit={getRss}> <div> <label> rss url</label> <br /> <input onChange={(e) => setRssUrl(e.target.value)} value={rssUrl} /> </div> <input type="submit" /> </form> {items.map((item) => { return ( <div> <h1>{item.title}</h1> <p>{item.author}</p> <a href={item.link}>{item.link}</a> </div> ); })} </div> ); }
연합 뉴스 RSS 서비스 주소
RSS 서비스 주소
- 최신 - http://www.yonhapnewstv.co.kr/browse/feed/
- 헤드라인 - http://www.yonhapnewstv.co.kr/category/news/headline/feed/
- 정치 - http://www.yonhapnewstv.co.kr/category/news/politics/feed/
- 경제 - http://www.yonhapnewstv.co.kr/category/news/economy/feed/
- 사회 - http://www.yonhapnewstv.co.kr/category/news/society/feed/
- 지역 - http://www.yonhapnewstv.co.kr/category/news/local/feed/
- 세계 - http://www.yonhapnewstv.co.kr/category/news/international/feed/
- 문화ㆍ연예 - http://www.yonhapnewstv.co.kr/category/news/culture/feed/
- 스포츠 - http://www.yonhapnewstv.co.kr/category/news/sports/feed/
- 날씨 - http://www.yonhapnewstv.co.kr/category/news/weather/feed/
feed, items, feedItems



RSS로 가져온 데이터

문제점…
- rss-parser를 사용했을 때 Webpack 문제가 발생했음. (node.js에서만 가능??)
정확히는 기억 안나지만 이런 유형
compiled with problems:x error in ./node_modules/rss-parser/lib/parser.js 3:13-28 module not found: error: can't resolve 'http' in '/users/gimmingi/desktop/programmers/react_study/react-netlify-test/node_modules/rss-parser/lib’
- CORS 문제
Server ? 또는 Client? 에서 Proxy가 필요하다고 함… 모르겠어요…
- CORS 문제를 해결하기 위한 AllOrigins
처음에는 Open API 처럼 AllOrigins에서 제공하는(?) 더미 RSS만 읽어오는 줄 알았는데, RSS를 지원하는 사이트 (연합뉴스, 리액트 블로그 등 RSS를 지원하는 페이지 모두 가능.)
이 방법이 최선인건지 다른 방법이 있을지… 고민
테스트용 RSS Feed Spot

eslint에 해당하는 내용이였는데도… git push를 하고 빌드에서 계속 실패했습니다…

수정해서 성공~ㅋㅋㅋㅋ
내일은 Serverless function….