GOOD4ME
3. 해외 주식 지표 데이터 크롤링 [완] 본문
반응형
지표 데이터 크롤링 기술이 확정되었고,
확정한 기술을 통해 크롤링 테스트를 완료하였다.
이번 테스트 및 작업에 대해 설명하기 전,
지표데이터 수집의 대상이 되는 사이트를
변경했음을 알린다.
야후파이낸스는 필요한 지표들이 여러 페이지(탭)에 나뉘어져있었고,
이번에 선정한 사이트는 필요한 지표들이 하나의 표 안에 통합되어있어
더 신속하고 효율적인 크롤링을 할 수 있었다.
크롤링 기술 변경
selenium 👉 BeautifulSoup
지난 포스팅에서 언급했듯이
웹에서 입력자동화가 필요없는 이상,
BeautifulSoup를 사용하는 것이
크롤링 속도가 더 빠르기 때문에 변경하였다.
사용한 구문 설명
# request.get 하위 함수
raise_for_status()
"""
요청/응답 코드가 200이 아니면
예외를 발생시키는 함수
"""
# BeautifulSoup 하위 함수
find()
findAll()
"""
BeautifulSoup를 통해 크롤링한 데이터에서
특정 요소(element)의 class나 id 등을 찾는 함수
"""
with ThreadPoolExecutor(max_workers=3) as executor:
future_list = executor.map(crawling_data, tick_list)
"""
병렬처리를 위한 스레드 처리 함수
"""
개발 이슈
HTTPError: 503 Server Error: Service Temporarily Unavailable for url:
상기의 오류가 발생하여 찾아보니
헤더 정보를 추가하지 않아 발생한 것이었다.
Selenium이나 BeautifulSoup 모두 헤더 설정은 필수인듯 싶다.😂
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'
}
response = requests.get(url, headers=headers)
테스트 결과
상기처럼 다양한 티커의 지표 데이터를
빠르게 크롤링이 가능한 것을 확인하였다.😀😁😁
반응형
'해외 주식 분석 프로젝트 > 크롤링' 카테고리의 다른 글
2. 실시간 주가 크롤링 계획 내용 일부 변경 (0) | 2022.11.23 |
---|---|
[Selenium] 레이아웃 내용의 일부분만 크롤링되는 현상 (0) | 2022.11.22 |
[Selenium] ValueError: not enough values to unpack (expected 2, got 1) (0) | 2022.11.21 |
1. 해외 주식 정보 크롤링 작업 계획 (0) | 2022.11.18 |
Comments