일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- linux
- React
- ubuntu
- Util
- DATABASE
- typeorm
- css
- S3
- HTML
- OS
- macos
- Crawling
- Network
- python
- Express
- postman
- mysql
- sequelize
- Kotlin
- MongoDB
- Scheduling
- OOAD
- algorithm
- docker
- node.js
- mongoose
- TypeScript
- Android
- wireshark
- AWS
- Today
- Total
목록
반응형
전체 글 (146)
SW

서론 이번 글에서는 쿠팡 홈페이지의 상품 정보들을 크롤링하는 예제를 다뤄보고자 한다. 상품의 이름, 가격, 리뷰 수, 구매 링크 내용을 크롤링하여 엑셀 파일에 저장하는 것까지 해볼 예정이다. 쿠팡 홈페이지를 상업적인 목적으로 크롤링하는 것은 저작권 침해로 문제가 될 수 있으므로 크롤링을 공부하는 목적으로 사용하여야 한다. 크롤링 시작하기 위처럼 필자는 쿠팡 검색어에 아이폰 키워드를 입력한 뒤 이동하는 주소에서 크롤링을 할 것이다. 주소는 여기를 클릭하면 바로 이동할 수 있다. 이제 화면을 살펴보자. 검색 조건에 별다른 필터를 주지 않았을 때 이와 같은 상품 목록들이 나왔다. 한 페이지에는 4개의 상품씩 총 9줄로 구성된 것을 확인할 수 있을 것이다. 필자는 상품 정보 중에서 상품명, 가격, 리뷰 수, 구..

서론 이전 포스팅 글에서 네이버 OpenAPI 사용 방법과 네이버에서 제공하는 API들을 포스트맨을 이용하여 사용하는 방법을 알아보았다. 이번 글에서는 파이썬으로 네이버 OpenAPI 사용을 위한 코드를 구현해보고자 한다. 포스트맨을 이용한 네이버 OpenAPI 사용 방법이 궁금한 분들이나 네이버 OpenAPI 사용 방법 과정이 궁금하신 분들은 여기를 참고하면 좋을 것 같다. 파이썬으로 네이버 Open API 사용하기 먼저 특정 웹사이트의 정보를 가져올 때에는 크롤링에서 많이 사용하는 requests모듈을 사용하여 웹사이트 정보를 가져올 수 있다. 이 때, 기존 크롤링에서 사용한 requests.get() 메서드에 2번째 인자로 네이버 OpenAPI 사용을 위한 Client ID, Client Secre..

서론 이전 포스팅 글에서는 크롤링을 이용해서 네이버 주식 페이지에서 국내 증시 상위 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"..