naver-articrawler

news crawler from naver


Keywords
news, crawler, naver, article
License
Apache-2.0
Install
pip install naver-articrawler==0.1.4

Documentation

NewsCrawler with multiproc/threads

License

Forked from lumyjuwon/KoreaNewsCrawler

lumyjuwonλ‹˜μ˜ KoreaNewsCrawlerλ₯Ό μ°Έκ³ ν•˜μ—¬ λ©€ν‹°μ“°λ ˆλ“œ/ν”„λ‘œμ„ΈμŠ€λ₯Ό 더 ν™œμš©ν•  수 μžˆλŠ” 크둀러λ₯Ό λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.

넀이버 기사 ν˜•νƒœκ°€ λ³€ν˜•λ˜μ–΄, μ’€ 더 효율적으둜 크둀링할 수 μžˆλ„λ‘ html parserλ₯Ό μˆ˜μ •ν–ˆμŠ΅λ‹ˆλ‹€.

Method

  • getTitles(category, startyear, startmonth, startday = -1, process_size, getter_threads)

이 λ©”μ„œλ“œλŠ” κΈ°μ‚¬μ˜ 제λͺ©μ„ ν¬λ‘€λ§ν•˜λŠ” λ©”μ„œλ“œμž…λ‹ˆλ‹€. 리턴값은 λ‹€μŒ ν˜•νƒœμ˜ 정보λ₯Ό λ°°μ—΄λ‘œ μ§€λ‹™λ‹ˆλ‹€.

{
  'date': '2020.05.28. μ˜€μ „ 11:21', 
  'writing': 'λ°μΌλ¦¬μ•ˆ', 
  'url': 'http://news.naver.com/main/list.nhn?mode=LSD&mid=sec&listType=title&sid1=100&date=20200528&page=43', 
  'title': '<포토> μ›λ‚΄λŒ€μ±…νšŒμ˜ μ£Όμž¬ν•˜λŠ” κΉ€νƒœλ…„', 
  'href': 'https://news.naver.com/main/read.nhn?mode=LSD&mid=sec&sid1=100&oid=119&aid=0002404281'
}

Example

from newsCrawler import NewsCrawler

Crawler = NewsCrawler()  
# param: μΉ΄ν…Œκ³ λ¦¬, μ‹œμž‘μ—°λ„, μ‹œμž‘μ›”, ν”„λ‘œμ„ΈμŠ€ 개수, μˆ˜μ§‘ μŠ€λ ˆλ“œ 개수
ret = Crawler.getTitles('μ •μΉ˜', 2020, 5, 4, 10)

Multi Process μ•ˆλ‚΄

크둀링 μž‘μ—…μ€ 크게 두 가지 λ‹¨κ³„λ‘œ λ‚˜λˆ„μ–΄μ§‘λ‹ˆλ‹€. 첫 λ²ˆμ§ΈλŠ” λ„€νŠΈμ›Œν¬λ₯Ό μ΄μš©ν•œ html νŽ˜μ΄μ§€ μˆ˜μ§‘ 단계, 두 λ²ˆμ§ΈλŠ” μˆ˜μ§‘λœ νŽ˜μ΄μ§€λ₯Ό λ°μ΄ν„°λ‘œ κ°€κ³΅ν•˜λŠ” 가곡 λ‹¨κ³„μž…λ‹ˆλ‹€. 이에 λ©€ν‹°ν”„λ‘œμ„Έμ„œλ₯Ό 적절히 ν™œμš©ν•˜κΈ° μœ„ν•΄ λ‹€μŒ ꡬ쑰둜 λ³€κ²½ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

  • 메인 ν”„λ‘œμ„ΈμŠ€λŠ” n개의 μˆ˜μ§‘ ν”„λ‘œμ„ΈμŠ€λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
  • 각 μˆ˜μ§‘ ν”„λ‘œμ„ΈμŠ€λŠ” λ‹€μ‹œ m개 만큼의 λ„€νŠΈμ›Œν¬ μˆ˜μ§‘ μŠ€λ ˆλ“œλ₯Ό μ΄μš©ν•΄ 병렬 μˆ˜μ§‘ν•©λ‹ˆλ‹€.
  • μˆ˜μ§‘μ΄ μ™„λ£Œλ˜λ©΄ 가곡 ν”„λ‘œμ„ΈμŠ€λ₯Ό μƒμ„±ν•˜μ—¬ κ°€κ³΅ν•©λ‹ˆλ‹€.

n은 ν”„λ‘œμ„ΈμŠ€μ˜ κ°œμˆ˜μž…λ‹ˆλ‹€. 가곡 ν”„λ‘œμ„ΈμŠ€μ˜ κ°œμˆ˜μ™€ λ™μΌν•˜λ©°, 각 ν”„λ‘œμ„ΈμŠ€λŠ” μž…λ ₯ λ²”μœ„(μˆ˜μ§‘ν•  λ²”μœ„)λ₯Ό n만큼 λ‚˜λˆ„μ–΄ μž‘μ—…ν•©λ‹ˆλ‹€.

m은 ν”„λ‘œμ„ΈμŠ€ λ‚΄ μˆ˜μ§‘ μŠ€λ ˆλ“œμ˜ κ°œμˆ˜μž…λ‹ˆλ‹€. ν¬λ‘€λ§μ‹œμ—λŠ” μ—°μ†λœ λ„€νŠΈμ›Œν¬ ν™˜κ²½μ΄ μ•„λ‹ˆλΌ, μ§€μ†μ μœΌλ‘œ λ‹€λ₯Έ url에 μ ‘κ·Όν•˜κΈ° λ•Œλ¬Έμ— λ„€νŠΈμ›Œν¬ 속도보닀 μ»΄ν“¨νŒ… 속도에 μ˜μ‘΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ•Œλ¬Έμ— λ©€ν‹° μŠ€λ ˆλ“œλ₯Ό μ΄μš©ν•©λ‹ˆλ‹€.

License

Apache License 2.0