-
[python] 금융 뉴스 크롤링개발 2025. 6. 3. 22:18
🔹 Python 크롤러
- IDE: VSCode 또는 PyCharm
- 설치 라이브러리: requests, BeautifulSoup
pip install requests beautifulsoup4터미널에서 해당 명령어 입력 > 설치
크롤링 코드
Python 버전 (네이버 뉴스 제목 가져오기)
import requests from bs4 import BeautifulSoup url = 'https://news.naver.com/section/101' res = requests.get(url) soup = BeautifulSoup(res.text, 'html.parser') titles = soup.select('div.sa_text > a.sa_text_title') for title in titles: print(title.get_text(strip=True))
import requests
requests 라이브러리를 불러오는 코드from bs4 import BeautifulSoup
BeautifulSoup은 HTML 문서를 구조적으로 파싱(해석) 해서 원하는 태그를 쉽게 찾게 도와주는 라이브러리
requests로 가져온 HTML을 분석하기 위해 사용
HTML의 DOM 구조를 트리 구조로 바꿔줘서 쉽게 탐색url = 'https://news.naver.com/section/101' res = requests.get(url) soup = BeautifulSoup(res.text, 'html.parser')
지정한 URL로 요청을 보내서, 응답(response) 을 받아와 res에 저장
res.text를 통해 HTML 전체 소스를 문자열로 받음
응답받은 HTML 문자열을 BeautifulSoup 객체로 변환 > soup은 이제 HTML을 탐색 가능한 형태
'html.parser'는 기본 파서로, HTML 구조를 해석해주는 도구titles = soup.select('div.sa_text > a.sa_text_title')select()는 CSS 선택자를 이용해서 원하는 태그들만 추출하는 함수
'div.sa_text > a.sa_text_title' 는→ <div class="sa_text"> 안에 있는 → <a class="sa_text_title"> 태그들을 모두 선택한다는 의미
>> 이 부분이 크롤링의 핵심! 원하는 뉴스 제목이 어디에 있는지를 정확히 알아야 함.for title in titles: print(title.get_text(strip=True))
크롤링한 뉴스 제목들 리스트인 titles를 하나씩 순회(for loop) 하면서 반복 > 각 title에서 텍스트만 뽑아서 출력
.get_text() → 태그 안의 글자만 추출
strip=True → 앞뒤 공백 문자 제거
전체 흐름 요약
- 웹페이지에서 HTML 코드를 가져오고
- HTML 구조를 BeautifulSoup으로 분석해서
- 뉴스 제목 태그만 골라내고
- 텍스트만 출력
'개발' 카테고리의 다른 글
[코테 알고리즘] BFS vs 다익스트라 (0) 2025.03.26 PyCharm No module named 'Crypto' 오류 해결 방법 (0) 2023.08.27