EXCELSIOR

06. Newspaper 모듈을 이용하여 뉴스 기사 크롤링하기 본문

Python/Web Crawling

06. Newspaper 모듈을 이용하여 뉴스 기사 크롤링하기

Excelsior-JH 2017. 6. 5. 01:19

이번 포스팅은 앞의 04.Scrapy를 이용한 뉴스 크롤링하기의 번외편으로써, Python의 newspaper라는 모듈을 이용하여 뉴스 기사를 크롤링하는 방법을 포스팅하고자 한다.

newspaper 모듈 소개

newspaper는 사용자가 지정한 url에서 text를 추출해주는 모듈이다. 자세한 내용은 newspaper 0.0.9.8에서 확인할 수 있다. 이 모듈을 사용하면 앞에 포스팅했던 Scrapy를 몰라도 바로 사용이 가능한 아주 좋은 모듈이다.
아래의 내용은 newspaper 0.0.9.8에서 확인할 수 있는 newspaper에 대한 소개이다.

“Newspaper is an amazing python library for extracting & curating articles.” – tweeted by Kenneth Reitz, Author of requests
“Newspaper delivers Instapaper style article extraction.” – The Changelog

그럼 newspaper의 설치방법에서 부터 사용법을 알아보도록 하자.

newspaper 설치

newspaper 모듈은 python2python3 에서 각각 설치방법이 다르다. python 2에서는 pip install newspaper라고 입력하면 설치가 되지만 python 3에서는 error가 난다. python3에서는 pip install newspaper3k라고 입력해야지 설치가 된다.

# python 2
pip install newspaper
# python 3
pip install newspaper3k

newspaper 사용해보기

설치가 완료되었으면 이제 뉴스기사를 크롤링해보자.
크롤링할 뉴스 기사는 [디지털+]전지전능 AI전성시대로 url 주소는 http://v.media.daum.net/v/20170604205121164 이다.
newspaper모듈을 사용하여 기사를 가져오는 소스코드는 아래와 같다.

from newspaper import Article
# url
url = 'http://v.media.daum.net/v/20170604205121164'
# language='ko'
a = Article(url, language='ko')
a.download()
a.parse()
#
print(a.title)
# (150)
print(a.text[:150])

위의 소스코드를 실행하면 아래의 그림과 같이 제목과 기사를 가져오는 것을 확인할 수 있다.
print(a.text[:150])으로 설정한 이유는 블로그 공간을 줄이기 위해 설정한 것이다. 전문을 가져오려면 print(a.text)라고 입력하면 된다.


이처럼 newspaper모듈을 이용하면 Scrapy를 사용하지 않고도 뉴스 기사를 크롤링해 올 수 있다.


Comments