본문 바로가기

코딩/파이썬

비전공자의 코딩 독학 - 파이썬[10] 네이버 속보 크롤링하기

반응형

안녕하세요.

오늘은 파이썬으로 초록창 속보를 크롤링 해보겠습니다.

 

1. 개요

(1) 크롤링이란?

크롤링은 분산되어 있는 데이터를 검색/수집하는 기술입니다.

쉽게말하면 우리가 흔히 하는 초록창 검색을 대신해주는 프로그램이라고 할 수 있습니다. 

우리는 오늘 웹페이지에서 데이터를 수집하는 크롤러를 프로그래밍해보겠습니다.

(2) 사용하는 모듈

a. BeautifulSoup

html코드를 파이썬이 이해할 수 있는 구조로 변환시켜주는 모듈입니다.

다음 명령어를 입력해 설치하실 수 있습니다.

pip install beautifulsoup4

b. urlopen

이름 그대로 url을 열어주는 모듈입니다.

 

파이썬에 기본적으로 탑재된 모듈이므로 별도의 설치과정이 필요없습니다.

 

2. 코딩하기

(1) 코드

from bs4 import BeautifulSoup
from urllib.request import urlopen

f = open('속보.txt', 'w')
response = urlopen('https://www.naver.com') 
soup = BeautifulSoup(response, 'html.parser')
for anchor in soup.select('a.issue'):
    data = '<속보> ' + anchor.get_text() + "\n"
    f.write(data)
f.close()

(2) 코드 설명

a. 모듈 불러오기

다음과 같이 'BeautifulSoup'와 'urlopen' 모듈을 불러옵니다.

from bs4 import BeautifulSoup

from urllib.request import urlopen

 

b. 크롤링 하기

크롤링한 내용을 저장할 [속보.txt]파일을 만들어줍니다.

f = open('속보.txt''w')

 

'urlopen'모듈을 활용해 크롤링 할 내용이 있는 초록창 웹페이지를 열어줍니다.

response = urlopen('https://www.naver.com'

 

'BeautifulSoup'모듈을 활용해 네이버에서 속보항목을 파싱 합니다.

soup = BeautifulSoup(response, 'html.parser')

 

페이지의 어떤 부분을 파싱할지 결정해줍니다.

초록창에서 키보드의 F12 키를 눌러 소스를 확인해줍니다.

 

소스 페이지의 좌측 상단에 있는 마우스 커서 모양 버튼을 눌러줍니다.

 

우리가 파싱하려는 속보 부분에 커서를 올리면 다음과 같이 마커를 확인할 수 있습니다.

 

우리는 [a.issue]라는 마커를 활용하여 속보를 파싱해주겠습니다.

for anchor in soup.select('a.issue'):

 

[속보.txt]파일에 '<속보> 기사내용' 양식으로 내용을 붙여넣어줍니다. 

    data = '<속보> ' + anchor.get_text() + "\n"

    f.write(data)

f.close()

 

(3) 결과물

정상적으로 진행하셨다면 다음과 같이 속보내용이 [속보.txt]파일에 저장됩니다.

반응형