주식 뉴스 분석 프로젝트 <news crawl><1>

 

프로젝트 개요 및 각 글들의 링크: https://namth.tistory.com/18


구글 미국 뉴스의 제목을 크롤링하는 python코드를 작성해보려 한다.

원래 기능에는 뉴스 내용도 크롤링하려고 하였으나, 각각의 뉴스마다 내용에 들어가는 html태그들이 다르고 광고 때문에

제목만 크롤링하기로 변경했다.

 


 

전체 코드

 

크롤링 로직

 

크롤링 진입부(Http 트리거)

 

 

코드 설명(로직)

2~6 줄

모듈을 import 하는 코드들로 작성되어있다.

  • 크롤링을 위한 bs4, requests 모듈
  • 객체 복사에 필요한 copy 모듈
  • 번역을 위한 translator 모듈
    google translate api을 이용하여 작성한 모듈
  • type 명시를 위한 typing 모듈

 

54 ~ 56 줄

우선 크롤링 함수 진입 점부터 보면 원하는 뉴스의 keyword를 입력받아서 크롤링이 시작된다.

구글 미국 뉴스 url 형태에 맞추어 url을 생성한 후 html을 가져온다.

해당 html은 구글 뉴스에서 검색어로 검색 후 뉴스들의 리스트가 나오는 화면의 html이다.

 

구글 테슬라 뉴스(미국)

 

그 후 bs4의 html.parser로 파싱을 한다.

 

57 ~ 65 줄

크롤링한 결과에서 뉴스 제목들만 추출하는 코드이다.

57번째 줄에서 find_all 하는 id는 뉴스 url이 저장되는 클래스 id이다.

 

url이 저장되어있는 h3을 배열에 저장시킨 후 해당 배열들을 순회한다.

h3안에 있는 a태그의 값을 이용하여 뉴스 제목을 가져온다.

 

아래 사진을 보면 a 태그의 참조가 상대적인 것을 알 수 있고, a 태그 안의 문자가 뉴스 제목인 것을 알 수 있다.

 

 

해당 페이지의 링크 값을  구글 뉴스 밖에서도 링크가 가능한 링크를 작성한다.

 

 

66 ~ 71 줄

만약 뉴스가 미국의 뉴스가 아니라면 뉴스 제목을 영어로 번역하는 작업을 하는 코드이다.

원래는 다른 나라의 뉴스들도 크롤링하고 영어로 번역하여 저장을 할 생각이었지만

 

일단 전체적으로 작동되는 것을 확인하려고 영어로만 고정시켜 놓았다.

 

 

# 2022.09.30 수정