5V로 인해 데이터를 다루는 질적 변화
Volume(크기), Velocity(속도), Variety(다양성), Veracity(정확성), Value(가치)
온라인 가격 데이터, 매장방문횟수, 인공위성 이미지까지도 쓰인다.
발틱운임지수:(BDI) 원자재와 곡물을 운반하는 데 쓰이는 벌크선의 시황을 나타내는 지수로, 높을 수록 호황. 1985년의 운임 수준을 기준으로, 원자재에 대한 운임을 비교한다. 전 세계 주요 항로의 선박 유형별 화물운임과 용선료를 정합해서 산출 한다. 원자재나 상품을 운반하는 양이 많아질수록 BDI가 상승한다. 동시에 주로 원자재의 교역량을 나타내주므로, 미래의 경기를 예측하는 선행지표의 기능도 가진다.
개인 데이터는 비정형이 주류. 비즈니스 데이터 중 신용카드 거래 등의 데이터는 신뢰할 만하며 예측력을 갖는다.
인공위성 데이터를 사용하려면 여러 가지 장벽 존재. 전처리, 구름량, 계절효과 등등.
대체 데이터에서 추출한 데이터를 결합해 알파를 높이는 것이 목표. 독립적으로 쓰기에는 쉽지 않다.
대체 데이터 세트는 전통 리스크 프리미엄과 상관관계가 낮아, 더 분산된 포트폴리오 제작에 도움.
가용성과 처리 용이성이 높다면, 독점력은 낮아진다.
대체 데이터 제공업체 시장은 분열되어 있다.
위치 정보 데이터 사용 예: 매장에서 발생된 고객 트래픽을 추정해 상장된 회사의 매출액을 예측할때의 변수로써 사용.
코드:
대체 데이터의 소스는 보통 리뷰 웹 사이트. HTML소스에서 추출하며, Beautiful soup를 사용.
1) request를 통해, HTTP요청을 생성, HTML 소스 코드를 받아온다.
2) 받아온 소스 코드에서, 검색 및 구문 분석을 통해 내가 관심 있는 부분만 추출한다.
3) 웹에서는 JS를 이용해 페이지 로딩 후 정보를 요청하므로, 직접적 HTTP요청은 실패 가능
4) 따라서 헤드리스 브라우저를 사용해 브라우저로 웹사이트 검색.
*검색: 헤드리스 브라우저
웹은 보통 GUI(graphic user interface)상에서 작동, headless모드는 gui없이 프로그램상으로만 작동. 실제 브라우저와 같게 작동해 JS도 잘 돌고 크롤링도 약간 빠르다고 한다. 크롬이 공식적으로 지원한다.
BeautifulSoup을 통해 얻은 Soup 객체 내에서 태그 마다 텍스트를 얻는 것이 웹 스크레이핑의 방식.
자바 스크립트는 중요한 부분을 동적으로 로드 한다는 특징으로 인해 셀레늄을 사용, 브라우저를 자동화.
코드 관련 상세 검색.
참고 사이트: https://hi-guten-tag.tistory.com/8
soup 객체에서 soup.title를 하면 title태그를 달고 있는 데이터들이 나옴.
soup.title.get_text()를 통해 텍슽크만 추출 가능
soup.a : HTML에서 첫번째로 a태그를 갖는 element반환
soup.a.attrs["href"] 처럼 soup.a.attrs(attribute)를 이용하면 이 element의 특성, 속성을 알 수 있다. soup.a.attrs를 하면 dictionary형태로 정보를 얻음.
soup.find('a', attrs={"class": "Nbtn_upload"})를 하면, a태그의 element중에서 atts에서 class의 속성이 "Nbtn_uupload"인 element를 가져올 수 있다.
ex) soup.find('li',attrs={"class":"rank01"})
그런데, 같은 클래스 명을 갖는 태그가 여러개 있다면 다른 방법(find_all) 필요.
cc= soup.find_all(~~)
for c in cc:
~~를 통해, soup객체를 새로 만들어서 작업 가능. 이때 데이터는 리스트 형태로 들어 있다.
get_text()는 하위 태그의 모든 텍스트(개행문자를 포함)
string은 해당 태그의 string만 가져온다. string은 자식 태그가 둘 이상이면 None을 반환하게 된다.
** . 을 통해 참조가 되지만, 항목이 없을수도 있으므로 find를 쓴다.
element가 여러개면 find_all르 쓴다.
div 아래 class명의 Hello라면
soup.find("div",attrs={"class":"Hello"}) 로 가져올 수 있다.
scrapy와 splash를 이용하면 좀더 자동화가 가능하다.
www.seekingalpha.com에서 트랜스 스크립트 데이터도 얻을 수 있다.