본문 바로가기
「python크롤링도전하기

매일경제 신문 헤드라인만 추출하기 도전1일차!

by DayGo 2021. 5. 28.

하루하루 신문을 보고 시시각각 변화하는 경제신문 헤드라인이라도 매일 아침에 체크해보면 좋겟다는 생각이 들었습니다.

물론 요즘 카카오톡을 통해 이미지화해서 전달해주는 카톡방도 성행하고 있지만

관심있는 기사의 헤드라인과 URL을 선별해서 

나의 개인 이메일까지 전달해주면 좋겠다는 생각에서 출발했습니다. ^^

물론 "구글 알리미" 서비스가 아주 편리한데요 

 

일단 아래 중 1번에 대해서만 진행해보려고 합니다. 

 

1. 나만의 기사를 헤드라인과 url 만 정갈하게 정리==> 파이썬 함수 활용 수동화

   - 나만의 기사란? 

     1) 특정 섹션만 선별 : 경제, 부동산, 증권, 사회, 정치 등

     2) 나만의 키워드 선별 :  구글 알리미가 정기적으로 제공하고 있는 서비스입니다.

 

 

2.  바로 url 로 내 메일로까지 싸주게 자동화까지 고도화 ==> 전자메일까지 자동화 (일정시각 송부)

 

 

본 과정은 anaconda 를 설치했다라는 가정에서 출발합니다.

설치가 안되시는분은 anaconda를 설치해주세요( 저는 윈도우 버전 64BIT를 PC에 설치했습니다.)

 

https://www.anaconda.com/products/individual

 

Anaconda | Individual Edition

Anaconda's open-source Individual Edition is the easiest way to perform Python/R data science and machine learning on a single machine.

www.anaconda.com

 

 

python을 활용해서 매일경제 사이트를 웹크롤링하는 방법을 실행해보자 합니다.

매일경제 신문 처음 MAIN 화면은 아래와 같습니다. 

 

계속해서 웹사이트 구성이 변하기 때문에 웹사이트에 대한 HTML  구조를 알아야 PARSING을 할수가 있습니다.

 

매일경제 사이트에는 수많은 하이라키 체계의 메뉴로 되어 있구요. 

웹사이트 개편에 따라 메뉴는 변경될 수 있으므로 파이썬 스크립트 에러가 나면 의심해볼 수 있습니다.

 

 

 

1. 먼저 anaconda prompt 환경에서 웹크롤링을 위한 패키지를 설치해야합니다.

 

requeats 와 beautifulsopu4 패키지를 설치해 줍니다. 

pip install 뒤에 여러 패키지를 나열하면 동시에 설치해줍니다.

 

urllib은 URL 처리에 관련된 모듈을 모아 놓은 패키지입니다

 

2. jupyter notebook 를 활용해 본격적으로 스크립트를 작성합니다.

 일단 매일경제 웹페이지 전체 화면에서 text와 url을 가져오는것부터 해보려고 합니다.

 

 

# 패키지 불러오기

from urllib.request import urlopen
from bs4 import BeautifulSoup

# url 이름 부여하기
url="https://www.mk.co.kr"
html = urlopen(url)

 

# BeautifulSoup 함수 활용 웹페이지 parsing 하기
bsObject = BeautifulSoup(html, "html.parser")

 

# 모든 웹페이지 소스 출력

print(bsObject)

 

# url 이 들어간 text와 url  추출하기
for link in bsObject.find_all('a'):
    print(link.text.strip(), link.get('href'))

 

 

print(bsObject) 를 하게 되면 모든 웹페이지 구조를 한눈에 볼수 있습니다. 

전체 for 문 까지 실행시키면 

아래와 같이 해당 웹페이지에 있는 text와 url 이 다 출력되게 됩니다.

 

 

 

이렇게 결과가 나오려면 html 문서 구조를 알아야 하는데요. 

 

매일경제 main page 에서 F12를 클릭하면 웹페이지 소스가 보이게 되는 화면으로 이동합니다.

 

여기서 마우스포인터를 누르면 매일경제 웹페이지 마우스 포인터를 이동할때 마다 해당컨텐츠의 소스가 보이게 됩니다.

예를들어

"세금 안내고 버티던 사채업자, 458억원 숨겼다" 라는 기사를 클릭하면 아래와 같은 웹페이지 소스를 볼 수 있습니다.

해당 코드에서 text와 url만 골라낼 수 있습니다.

 

"a" tag를 찾아서 text와 url를 parcing 하여 갖구오면 됩니다.

 

 

html 웹페이지 구조에 대해서는 아래 영상을 보시면 도움이 많이 됩니다^^

웹툰 구조로 되있어서 이해하기 쉬울거에요.

 

https://www.youtube.com/watch?v=tZooW6PritE&list=PLuHgQVnccGMDZP7FJ_ZsUrdCGH68ppvPb 

 

 

또한 html 에 대한 실습이나 설명은 아래 싸이트 참고하시면 도움이됩니다^^

https://www.w3schools.com/html/html_basic.asp

 

HTML Basic

HTML Basic Examples In this chapter we will show some basic HTML examples. Don't worry if we use tags you have not learned about yet. HTML Documents All HTML documents must start with a document type declaration: . The HTML document itself begins with and

www.w3schools.com

 

 

이런식으로 실습을 할 수 있습니다.^^

 

 

2차에는 매일경제 사이트("https://www.mk.co.kr")  중 

특정 섹션인 "경제","사회","부동산","증권","정치" 등 화면에서 text와 url 만

출력하는 방법을 알아보겠습니다.

댓글