본문 바로가기

Data Scraping/#Quant Portfolio

[퀀트] R을 활용한 퀀트 투자 포트폴리오 만들기 (2)

Chapter 2 크롤링을 위한 기본 지식

 

2.1 인코딩의 이해와 R에서 UTF-8 설정하기

2.1.1 인간과 컴퓨터 간 번역의 시작, ASCII

인코딩: 인간언어를 컴퓨터 언어(0, 1)로

디코딩: 인코딩의 반대

번역의 시초는 ASCII(American Standard Code for Information Interchange)

0~127까지의 숫자에 단어 및 특수문자를 부여한 체계로 영어 알파벳만을 지원함

 

2.1.2 한글 인코딩 방식의 종류

‘알’이라는 글자를 ‘알’로 표현하는 완성형, ‘ㅇ+ㅏ+ㄹ’로 표현하는 조합형

1) EUC-KR

현대 한글에서 많이 쓰이는 문자엠나 번호를 붙임

모든 자모 조합을 표현하기 부족

 

2) CP949

EUC-KR을 보완하기 위해 MS가 개발

더 많은 한글을 표현할 수 있음

 

3) UTF-8

모음, 자음에 각각 코드를 부여해 조합

한글 뿐 아니라 다양한 언어에 적용할 수 있음

 

2.1.3 R에서 UTF-8 설정하기

Global Options에서 설정하면 됨

 

2.2 웹의 동작 방식

클라이언트 (요청) - 인터넷 - 서버 (응답)

인터넷의 주소를 URL이라고 함

 

2.2.1 HTTP

HyperText Transfer Protocol의 약자로 클라이언트의 요청 방식에 대한 표준을 정의한 것

HTTP 요청 방식으로는 특정 정보를 조회하는 GET과 새로운 정보를 등록하는 POST 방식이 있음

HTTP 상태 코드로 100번대 ~ 500번대가 있는데 그 중 404 error와 같은 400번대 반응은 클라이언트 요청이 잘못된 것

*200대가 정상임

 

2.3 HTML과 CSS

응답 화면을 사용자인 사람이 보기 편하게 만들기 위한 디자인용 마크업 언어

HTML(HyperText Markup Language)는 사이트의 뼈대를 잡고, CSS(Cascading Style Sheets)는 배치 등 화면을 꾸며주는 역할

 

2.3.1 HTML 기본 구조

<html>

<head>

<title>Page Title</title>

</head>



<body>

<h2> This is page heading </h2>

<p> THis is first paragraph text </p>

</body>

</html>

 

2.3.3 h태그와 p태그

h태그는 폰트의 크기를(1~6까지, 작을수록 큰 폰트), p태그는 문단을 나타냄

<html> 

<body> 



<h1>Page heading: size 1</h1> 

<h2>Page heading: size 2</h2> 

<h3>Page heading: size 3</h3> 



<p>Quant Cookbook</p> 

<p>By Henry</p> 



</body> 

</html> 



2.3.4 리스트를 나타내는 ul 태그와 ol 태그

ul은 순서가 없는 리스트 (unordered list), ol은 순서가 있는 리스트 (ordered list)를 생성함

<html> 

<body> 



<h2> Unordered List</h2> 

<ul> 

<li>Price</li> 

<li>Financial Statement</li> 

<li>Sentiment</li> 

</ul> 



<h2> Ordered List</h2> 

<ol> 

<li>Import</li> 

<li>Tidy</li> 

<li>Understand</li> 

<li>Communicate</li> 

</ol> 



</body> 

</html>


2.3.5 table 태그

표를 만드는 태그

<html>

<body>



<h2>Major Stock Indices and US ETF</h2>



<table>

<tr>

<th>Country</th>

<th>Index</th>

<th>ETF</th>

</tr>

<tr>

<td>US</td>

<td>S&P 500</td>

<td>IVV</td>

</tr>

<tr>

<td>Europe</td>

<td>Euro Stoxx 50</td>

<td>IEV</td>

</tr>

<tr>

<td>Japan</td>

<td>Nikkei 225</td>

<td>EWJ</td>

</tr>

<tr>

<td>Korea</td>

<td>KOSPI 200</td>

<td>EWY</td>

</tr>

</table>



</body>

</html>

 

tr 태그는 각 행을 구분하고, th, td 태그는 각각 제목과 내용의 셀을 구분함

 

2.3.6 a태그와 src 태그 및 속성

<html>

<body>



<h2>a tag & href attribute</h2>

<p>HTML links are defined with the a tag.

The link address is specified in the href attribute:</p>



Henry's Quantopia



<h2>img tag & src attribute</h2>

<p>HTML images are defined with the img tag,

and the filename of the image source is

specified in the src attribute:</p>





width="180",height="140">



</body>

</html>

a태그는 href와 같은 속성과 주로 결합해 페이지의 링크를 거는데 쓰이고, src 태그는 img 속성과 결합해 이미지를 불러옴 (height, weight 속성으로 가로, 세로 길이 조절 가능)

페이지 내 링크된 주소 및 이미지를 모두 저장하고자 할 때 유용한 속성

 

2.3.7 div 태그

<html>

<body>



<div style="background-color:black;color:white">

<h5>First Div</h5>

<p>Black backgrond, White Color</p>

</div>



<div style="background-color:yellow;color:red">

<h5>Second Div</h5>

<p>Yellow backgrond, Red Color</p>

</div>



<div style="background-color:blue;color:grey">

<h5>Second Div</h5>

<p>Blue backgrond, Grey Color</p>

</div>



</body>

</html>

화면의 레이아웃을 만들 때 쓰임

단독으로도 쓰이며 style 속성과 결합되어서도 쓰임

 

2.3.8 CSS

웹 페이지를 꾸며주는 역할

head 부분에 입력하여 효과 적용

이런 접근 방식을 Selector라고 함

<html>

<head>

<style>

body {background-color: powderblue;}

h4 {color: blue;}

</style>

</head>

<body>



<h4>This is a heading</h4>

<p>This is a first paragraph.</p>

<p>This is a second paragraph.</p>



</body>

</html>

body 태그에 style 태그를 추가하지 않아도 head 태그에서 정의한 글자, 배경 색상이 적용됨

 

2.3.9 클래스와 id

특정 요소에만 동일한 효과를 주고 싶을 때 사용

<html>

<style>

.index {

background-color: tomato;

color: white;

padding: 10px;

}

.desc {

background-color: moccasin;

color: black;

padding: 10px;

}

</style>



<div>

<h2 class="index">S&P 500</h2>

<p class="desc"> Market capitalizations of 500 large companies

having common stock listed on the NYSE, NASDAQ,

or the Cboe BZX Exchange</p>

</div>



<div>

<h2>Dow Jones Industrial Average</h2>

<p>Value of 30 large, publicly owned companies

based in the United States</p>

</div>



<div>

<h2 class="index">NASDAQ Composite</h2>

<p class="desc">The composition of the NASDAQ Composite is

heavily weighted towards information technology companies</p>

<div>

</html>

셀렉터를 클래스에 적용할 때는 클래스명 앞에 ‘.’를 붙임

본문의 첫 번째, 세 번째 레이아웃에는 index 클래스를, p 태그 뒤에는 desc 클래스를 속성으로 입력하여 해당 레이아웃에만 CSS 효과가 적용됨

id도 이와 유사한 기능을 수행함

but HTML 안에서 단 한 번만 정의할 수 있음

<html>

<head>

<style>



/* Style the element with the id "myHeader" */

#myHeader {

background-color: lightblue;

color: black;

padding: 15px;

text-align: center;

}

</style>

</head>

<body>



<!-- A unique element -->

<h1 id="myHeader">My Header</h1>



</body>

</html>

셀렉터를 id에 적용할 때는 클래스명 앞에 #을 붙여 표현함

 

2.4 파이프 오퍼레이터 (%>%)

다음 시간에~

 

Reference

w3schools: https://www.w3schools.in/html-tutorial/

웨버 스터디: http://webberstudy.com/

 


fastcampus, R을 이용한 퀀트 포트폴리오 만들기


https://hyunyulhenry.github.io/quant_cookbook/


 

 

I'm a Senior Student in Data Science ! 

데이터 사이언스를 공부하고 있는 4학년 학부생의 TIL 블로그입니다. 게시글이 도움 되셨다면 구독과 좋아요 :)