일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 연결리스트
- 스토어드 프로시저
- BOJ
- exclusive lock
- SQL프로그래밍
- 지연로딩
- 데코레이터
- 다대일
- FetchType
- JPQL
- PS
- 유니크제약조건
- 스프링 폼
- querydsl
- fetch
- 비관적락
- 백트래킹
- 다대다
- 일대다
- execute
- 낙관적락
- dfs
- eager
- shared lock
- 이진탐색
- 즉시로딩
- 힙
- CHECK OPTION
- 동적sql
- 연관관계
- Today
- Total
흰 스타렉스에서 내가 내리지
웹 크롤링 3 - 크롤링한 데이터들을 파일에 저장하기 본문
이전 게시물에서 시가총액 상위 기업들의 순위들을 긁어왔었는데, 그것을 txt파일에 저장해보자.
import requests
from bs4 import BeautifulSoup
file = open('rank.txt', 'w')
naver_finance = requests.get('https://finance.naver.com/sise/sise_market_sum.naver')
naver_finance_html = BeautifulSoup(naver_finance.text, 'html.parser')
corps = naver_finance_html.select('tbody .tltle')
file.write('시가총액 순위')
for i in range(1, len(corps)+1):
file.write(f'{i} : {corps[i-1].text}\n')
file.close()
자 그럼, 이 시가총액 TOP 기업들의 랭킹을 매일 자동으로 저장한다고 하자.
사실 시가총액 순위는 매일 변동이 그렇게 크지 않은 주제인데, 코드가 있으니 그냥 예시로 해보기로 하자.
이건 뉴스랭킹 긁어오는 주제가 더 적절한 것 같다.
데이터를 수집하는 날마다 파일명을 바꾸어 'TOP50_2022_02_11.txt' 와 같이 저장한다면 깔끔하겠다.
자 그럼 오늘 날짜를 불러오는 코드가 필요하겠다. datetime 라이브러리를 사용하자.
년월일을 파일명으로 쓰고 싶으면 포매팅을 해야겠다,
datetime 라이브러리의 strftime()함수를 쓰면 된다.
strftime은 String Formatted Time의 약자다.
그럼 오늘 날짜가 포함된 파일명으로 시가총액 상위 기업들의 순위를 저장해보자.
import datetime
import requests
from bs4 import BeautifulSoup
df = datetime.datetime.now().strftime('%Y_%m_%d')
filename = 'TOP50_' + df
file = open(filename, 'w')
naver_finance = requests.get('https://finance.naver.com/sise/sise_market_sum.naver')
naver_finance_html = BeautifulSoup(naver_finance.text, 'html.parser')
corps = naver_finance_html.select('tbody .tltle')
file.write('시가총액 순위')
for i in range(1, len(corps)+1):
file.write(f'{i} : {corps[i-1].text}\n')
file.close()
datetime 모듈에 대해 더 알고싶다면 공식문서 링크
https://docs.python.org/ko/3/library/datetime.html?highlight=datetime#module-datetime
datetime — 기본 날짜와 시간 형 — Python 3.10.2 문서
datetime — 기본 날짜와 시간 형 소스 코드: Lib/datetime.py datetime 모듈은 날짜와 시간을 조작하는 클래스를 제공합니다. 날짜와 시간 산술이 지원되지만, 구현의 초점은 출력 포매팅과 조작을 위한
docs.python.org
'Web Crawling' 카테고리의 다른 글
웹 크롤링 4 - selenium을 이용해 동적수집을 해보자 (0) | 2022.02.17 |
---|---|
웹 크롤링 2 - 네이버 금융에서 시가총액 상위 기업들 크롤링하기 (0) | 2022.02.17 |
웹 크롤링 1 - requests, bs4 라이브러리 (0) | 2022.02.17 |