일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- algorithm
- DATABASE
- docker
- OOAD
- Scheduling
- mongoose
- postman
- mysql
- css
- Crawling
- python
- S3
- sequelize
- Kotlin
- AWS
- typeorm
- Express
- node.js
- HTML
- linux
- wireshark
- macos
- MongoDB
- Network
- OS
- React
- Android
- Util
- ubuntu
- TypeScript
- Today
- Total
목록
반응형
전체 글 (144)
Seongwon Lim
서론 이전 포스팅 글에서는 크롤링을 이용해서 네이버 주식 페이지에서 국내 증시 상위 50개의 종목 이름과 가격을 가져오는 기능을 구현한 뒤 csv파일로 결과를 저장하는 방법을 알아보았다. 이번에는 동일한 결과를 엑셀 파일(.xlsx)로 저장하는 방법을 알아보고자 한다. 구현하기 파이썬에서 엑셀 파일을 만들기 위해서는 라이브러리가 필요한데 필자는 openpyxl 이라는 라이브러리를 이용했다. 먼저 pip install openpyxl 명령어로 라이브러리를 설치한다. res = requests.get("https://finance.naver.com/sise/sise_market_sum.naver?&page=1") soup = BeautifulSoup(res.content, 'html.parser') comp..
이번 글에서는 네이버 주식 국내 증시 중 코스피 시가총액 상위 50개 종목명과 현재가를 크롤링하는 예제를 살펴보고 추출한 데이터를 csv파일로 저장하는 방법을 알아본다. https://finance.naver.com/sise/sise_market_sum.naver?&page=1 해당 페이지로 들어가면 코스피에 상장된 기업들이 시가 총액 순으로 정렬된 페이지가 나타난다. 필자는 해당 페이지에서 종목명, 현재가를 크롤링으로 추출해보고자 한다. 먼저 F12 또는 오른쪽 마우스 클릭 후 검사 탭을 눌러 개발자 도구를 연다. 그 다음으로 기업들이 어떤 태그에 묶여있는 지 확인해봤더니 tbody라는 태그에 속한 것을 확인할 수 있었다. 이제 삼성전자라는 키워드가 어떻게 구성되어 있는지 살펴보자. 개발자 도구 왼쪽 ..
CSS selector란? CSS selector는 직역하면 CSS 선택자이며 의미는 특정 요소를 선택하여 스타일을 적용할 수 있도록 도와준다. 위 그림을 보면 선택자로 p태그에 정의되어 있으며 해당 태그를 여러 속성을 주어 스타일을 적용했다. 이처럼 { 기호가 나오기 이전의 부분을 선택자(selector) 라고 표현하며 파이썬에서 크롤링을 할 때 HTML에 정의되어 있는 많은 selector를 이용하여 데이터를 추출할 수 있다. 쉽게 생각하면 CSS selector는 태그의 연속으로 이루어진 문자열 이라고 생각할 수 있다. (태그 말고도 클래스명, 아이디값 등 다양한 값이 올 수 있으며 아래에서 다룰 예정이다.) 사용방법 기존에는 find(), findAll() 등의 함수를 사용했다면 CSS Sele..
이전 포스팅 글에서는 태그의 클래스명(class=”...”) 을 가지고 내용을 추출하는 방법을 알아보았다. 이번 포스팅 글에서는 임의로 작성된 HTML 코드를 이해하여 작성된 HTML Content를 가지고 파이썬으로 크롤링 하는 다양한 방법들을 살펴볼 예정이다. 먼저 데이터를 추출하기 위한 임의의 HTML 코드는 다음과 같이 작성했다. 임의로 작성된 HTML 코드 타이틀 크롤링이란? 예시로 크롤링 이해하기 HTML 코드를 이해하여 크롤링 다루기 태그를 이용한 데이터 추출 content = """ 임의로 작성된 HTML 코드 타이틀 크롤링이란? 예시로 크롤링 이해하기 HTML 코드를 이해하여 크롤링 다루기 """ soup = BeautifulSoup(content, 'html.parser') data =..
크롤링(Crawling)이란? 크롤링이란 쉽게 설명하면 웹사이트에서 내가 원하는 데이터를 추출하는 것이다. 크롤링이라는 의미의 이해를 돕고자 예시를 가져왔다. 특정 쇼핑몰 인기순위 top10 제품의 이름과 가격 가져오기 네이버 블로그 검색 결과 가져오기 특정 인터넷 기사의 기사 제목 가져오기 쿠팡 검색창에서 노트북 검색 후 상위 4개 상품의 상품명 가져오기 이처럼 사용자가 원하는 웹사이트에 들어가서 원하는 데이터를 추출하여 가져오는 것을 말한다. 파이썬은 크롤링을 위한 많은 라이브러리를 제공하고 있으며 라이브러리를 통해 편리하게 크롤링 기능을 구현할 수 있다. 주로 파이썬에서 크롤링을 위해 필요한 라이브러는는 requests, BeautifulSoap 이다. requests library 페이지를 가져오..
1. 패키지 초기 설정 프로젝트 정보 및 의존성을 구성하는 packages.json 파일을 생성한다. npm init 명령어를 통해 설치할 수 있다. 필자는 ts-express라는 디렉토리에서 패키지를 생성했다. 패키지를 초기화 할 때는 다른 옵션을 건드리지 않고 엔터를 눌러 넘어갔다. 2. 필요 모듈 설치하기 익스프레스 모듈을 타입스크립트를 이용하여 사용하기 위해서는 몇가지 모듈이 필요하다. express, typescript, ts-node, @types/node, @types/express 5개의 모듈을 설치하여 개발에 필요한 모듈을 설치한다. 그리고 추가적으로 nodemon 모듈도 설치하여 서버를 껐다 키지 않아도 알아서 서버를 다시 시작해주는 모듈을 추가로 설치한다. npm install exp..
서론 이번 글에서는 타입스크립트 환경에서 비밀번호 암호화를 하는 방법을 다뤄보고자 한다. 그리고 로그인을 할 때 사용자가 입력한 비밀번호와 DB에 저장된 암호화된 비밀번호가 일치하는지 알아보는 방법을 다룬다. 자바스크립트 기반으로 Bcrypt를 다루는 법은 여기를 참고하면 좋을 것 같다. 모듈 설치하기 npm install @types/bcrypt --save 자바스크립트와 다르게 타입스크립트는 @types/bcrypt를 설치해주어야 한다. 사용 방법 설치한 모듈을 사용하려면 import bcrypt from "bcrypt"; 를 상단에 선언한다. 이제 회원가입의 경우를 예시로 들어 사용법을 살펴보기로 한다. 입력받은 비밀번호를 암호화 할 때에는 genSalt(), hash() 메서드를 이용한다. 예를 ..
서론 여태까지 진행한 예제들은 타입스크립트 기반으로 개발 환경을 구성하고 ts-node 모듈을 이용하여 직접 ts파일을 빌드하여 실행했다. 이번에는 ts파일을 직접 실행하는 것이 아니라 ts 파일을 컴파일하여 생성된 js파일을 가지고 실행하는 것을 알아보고자 한다. 실제 프로젝트에서 런타임을 할 때에는 대부분의 경우가 javascript 파일을 실행하기 때문이다. tsconfig.json 수정하기 { "compilerOptions": { "lib": [ "es5", "es6" ], "target": "es5", "module": "commonjs", "moduleResolution": "node", "outDir": "./build", // 이전에 정의 안했다면 정의하기 "rootDir": "./src"..
서론 이전 포스팅 글에서는 index.ts 파일에서 User 테이블에 CRUD를 하는 미들웨어를 모두 구현했었다. 그러나 실제 프로젝트를 진행하는 경우 테이블의 개수가 더욱 많아지고 프로젝트 구조는 더욱 복잡해진다. 따라서 우리는 프로젝트를 진행할 때 테이블(혹은 기능)별로 파일을 분리하는 습관을 가져야 한다. 그래서 이번 포스팅 글에서는 자바스크립트와 달리 타입스크립트 환경에서는 어떻게 라우팅을 하는지 간단하게 알아보고자 한다. 시리즈 1,2 내용에서 다룬 내용을 기반으로 진행하는 내용이므로 개발환경 설정이 되지 않은 분들은 시리즈1, 시리즈2를 참고하면 좋을 것 같다. 또한 타입스크립트 기반이 아닌 Javascript + Express 기반 라우팅 사용법을 알아보고자 하는 분들은 여기를 참고하면 좋을..
서론 이전 시간에는 Express 개발 환경에서 TypeORM을 구성하는 방법을 알아보았다. 이번 글에서는 스키마에 생성되어 있는 테이블에 데이터를 삽입, 삭제, 수정, 조회 하는 방법을 예시를 통해서 알아보고자 한다. TypeORM 개발 환경을 세팅하지 않은 분들은 여기를 참조하면 좋을 것 같다. 먼저 이전 포스팅 글에서 구현했던 index.ts 파일의 코드를 다음과 같이 수정했다. app.listen() 함수 수정하기 app.listen(3000, () => { console.log('Starting Server with 3000 port'); createConnection().then(async connection => { console.log("디비 연결 성공"); }).catch(error =>..