Skip to content

ko9ma7/newsCrawl

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

newsCrawl

간단하고 빠른, 멀티프로세스 지원 뉴스 크롤러입니다.

실행법

MongoDB를 설치하고, main.py를 실행시키고, 후술될 oid를 입력하세요. 정상적으로 작동된다면 데이터베이스의 newsDB와 newsCategory에 크롤링된 내용이 저장됩니다.

네이버 뉴스 URL 구조

네이버 뉴스의 URL은 다음과 같이 구성됩니다.
https://news.naver.com/main/read.nhn?mode=LSD&mid=sec&sid1=105&oid=001&aid=0011015423
여기서 중요한 것은 aidoid입니다. oid는 언론사의 일련번호이고, aid는 각 언론사별로 발행한 뉴스의 일련번호입니다. 이 프로그램은 언론사를 입력하면 해당 언론사의 모든 뉴스를 크롤링합니다.

각 언론사별 코드는 다음과 같습니다:
oid 언론사명
001 연합뉴스
002 프레시안
003 뉴시스
004 한국경제TV
005 국민일보
006 미디어오늘
007 일다
008 MT
009 메일경제
011 서울경제
013 연합인포맥스
014 파이낸셜뉴스
015 한국경제
016 헤럴드경제
018 이데일리
019 MBN
020 동아일보
021 문화일보
022 세계일보
023 조선일보
024 매경이코노미
025 중앙일보
028 한겨레
029 디지털타임스
030 전자신문
031 아이뉴스24
032 경향신문
033 주간경향
036 한겨레21
037 주간동아
044 The Korea Herald (영어)
046
047 오마이뉴스
049 mbc sports(스포츠)
050 한경 비즈니스
052 YTN
055 SBS
056 KBS
057 MBN
065 JUMPBALL(스포츠)
076 스포츠조선
077
078
079 노컷뉴스
081 서울신문
082 부산일보사
084 제주일보사
086 석간 내일신문
087
088 매일신문
089
091 연합뉴스
092 ZDNet
096 SBS
098
108 스타뉴스(연예)
109 OSEN(연예)
111 조이뉴스(스포츠)
112 헤럴드 POP
117 마이데일리(연예)
119 데일리안
140 씨네21
143 쿠키뉴스(스포츠)
144 스포츠경향(스포츠)
227 아시아경제
293 블로터
366 조선비즈
421 뉴스1
437 JTBC
448 TV조선
586 시사저널
이 리스트는 완전하지 않으며 추후 수정될 수도 있습니다.

저장된 DB

DB는 newsDB와 newsCategory에 저장됩니다.

newsDB

newsDB에는 뉴스의 내용이 저장됩니다. 각 언론사별로 컬렉션을 만들어 그 컬렉션에 저장합니다. 저장되는 데이터의 형식은 다음과 같습니다.

  • newsId : 뉴스 aid
  • title : 뉴스 제목
  • body : 뉴스 본문
  • summary : 뉴스 요약본(네이버 3줄요약 인공지능 기반)
  • category : 뉴스 카데고리(배열로 저장됨, 중복 분류 대응)
  • publishTime : 뉴스 최초 발행 시각
  • editedTime : 뉴스 최종 수정 시각

newsCategory

newsCategory에서는 카데고리별로 뉴스를 찾을 수 있도록 뉴스의 oid와 aid를 저장합니다. 각 분류별로 컬렉션을 만들어 그 컬렉션에 저장합니다. 네이버 뉴스 방침상 기사의 중복분류를 허용하고 있어 같은 기사가 여러 개의 컬렉션에 중복으로 등록될 수도 있습니다. 저장되는 데이터의 형식은 다음과 같습니다.

  • oid : 뉴스 oid
  • aid : 뉴스 aid

각 분류는 다음과 같은 코드로 저장됩니다.

  • 정치: politics
  • 경제: economy
  • 사회: society
  • 생활/문화: live
  • 세계: world
  • IT/과학: it
  • 오피니언: opinion

추가 옵션 설정

processNo와 batch를 조정함으로써 다운로드 속도를 조정할 수 있습니다. processNo는 몇개의 프로세스로 뉴스를 동시에 다운받을지 설정하는 변수입니다. batch는 데이터베이스에 저장하는 주기입니다. 해당 값이 작으면 저장을 더 자주 하지만, 속도가 느려집니다.

주의사항

해당 프로그램은 크롤링을 위해 어떠한 우회도 하지 않습니다(refer, user-agent, ...) 해당 프로그램을 사용하여 발생하는 모든 문제들(IP 차단, ...)에 대한 책임은 사용자 본인에게 있습니다.

About

간단하고 빠른 네이버 뉴스 크롤러

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 98.0%
  • PowerShell 2.0%