← Back to list

네이버 기사 크롤링 step by step with R

이중 크롤링 - 1단계: 각 기사의 링크 주소 크롤링 - 2단계: 각 기사의 글 크롤링

Ella Vibe (Sooyeon Lee) · 2020-04-21 07:20 · 0 claps · 2.9 min read
#뉴스기사크롤링 #크롤링 #crawling #r이용한크롤링
Open on Medium ↗

네이버 기사 크롤링 step by step with R

이중 크롤링

  • 1단계: 각 기사의 링크 주소 크롤링
  • 2단계: 각 기사의 글 크롤링

step 1. 각 기사의 링크 주소 크롤링

HTTP 통신에 관련된 httr 라이브러리를 불러온다.

```{R}
library(httr)

통신에서 가져온 정보를 해석하는 용도. `rvest` 라이브러리를 가져온다.
library(rvest)

## 기사 목록 가져오기 start

`httr`의 GET함수를 이용해서 기사 웹 페이지 사이트를 `res`에 저장한다
res = GET(‘https://news.naver.com/main/main.nhn?mode=LSD&mid=shm&sid1=102')

정상적으로 가져왔는지 `res`를 출력하여 확인한다. `Status: 200`으로 정상적으로 정보를 가져왔음을 확인 할 수 있다.
res

![](https://miro.medium.com/v2/resize:fit:690/1*X6CdIll5nIDRHehWeaEpLg.png)

`res`의 HTML읽고와 `htext`에 저장한다.
htxt = read_html(res)

## 각 기사들의 링크 추출

기사의 소스 코드를 확인 하면 <a href> 노드에 기사 각각의 url이 들어있음을 확인 할 수 있다. (a href 노드는 뉴스기사 주소 링크에 행당.)

해당 페이지의 기사들을 전부 크롤링 하기 위해 더 큰 노드를 확인해보니 <div class = list body newsflash_body>에 들어있음을 확인!

![](https://miro.medium.com/v2/resize:fit:1167/1*V4-kfC86Zsz5BWzXw3LLfg.png)

읽어온 HTML에서 기사 링크에 해당하는 노드, `div.list_body`테그 안 `a`를 찾는다.
link = html_nodes(htxt, ‘div.list_body a’)

링크에서 기사 주소를 나타내는 어트리뷰트 `href`만 뽑아내고 `unique`의 함수를 이용해 중복을 제거한다. (이미지에 해당 링크가 있는 경우에는 링크가 중복이 있을 수 있고, 제목형 페이지나 모바일용 뉴스 화면에서 크롤링을 하게 되면 중복의 문제는 해결 할 수 있다.)
article.href = unique(html_attr(link, ‘href’))

중복은 제거 했지만, 주소형태가 아닌게 있을 수 있기 때문에 주소만 뽑아 오기위해 grep를 이용해 ‘http’만 있는 것만 뽑아 `article.href`에 저장한다.
grep(‘http’,article.href)
article.href = article.href[c(grep(‘http’,article.href))]

## step 2. 각 기사의 글 크롤링

for문과 GET함수를 이용해 article.href 노드의 해당 기사를 가지고 온다.
articles = for(href in article.href){
 g=GET(href)
 print(g)
}


결과 마무으리~

![](https://miro.medium.com/v2/resize:fit:1001/1*KoOfTHcF48j8FD062cnZDg.png)

메타데이터
post_id
bbc6b78ec29d
slug
네이버-기사-크롤링-step-by-step-with-r-bbc6b78ec29d
url
https://medium.com/@yololife-sy/%EB%84%A4%EC%9D%B4%EB%B2%84-%EA%B8%B0%EC%82%AC-%ED%81%AC%EB%A1%A4%EB%A7%81-step-by-step-with-r-bbc6b78ec29d
canonical_url
https://medium.com/@yololife-sy/%EB%84%A4%EC%9D%B4%EB%B2%84-%EA%B8%B0%EC%82%AC-%ED%81%AC%EB%A1%A4%EB%A7%81-step-by-step-with-r-bbc6b78ec29d
author_url
https://medium.com/@yololife-sy
status
ok
fetched_at
2026-06-27 07:40:21