728x90
반응형

이전 글에서 간략하게 프록시가 무엇이며

프록시를 활용해서 IP를 변경하는 방법을 알아보았습니다

 

더 자세한 정보를 알고 싶으시다면 아래의 링크를 클릭하시길 바랍니다.

 

 

2022.09.02 - [IT_Web/Nodejs] - 웹 크롤링 puppeteer 프록시 IP 적용하기 그런데 대체 프록시 란? 뭘까?

 

웹 크롤링 puppeteer 프록시 IP 적용하기 그런데 대체 프록시 란? 뭘까?

이전 글 웹 크롤링 마우스 조작하기에 대해서 태그를 도저히 못 찾겠다면 마우스를 조작하여 직접 마우스 클릭하는 방법을 구현해서 웹크롤링을 합니다 하지만 마우스 조작하는 방법은 대도록

tantangerine.tistory.com

 

 

 

웹 크롤링은 정보를 추출하여 파일을 만들어 업무 효율높는데 목적이 있습니다

하지만 그 정보를 DB에 보관한다면 중복검사와 데이터 관리에 있어 보다 더 효율적으로

관리가 가능합니다

 

그래서 DB 연동은 웹크롤링을 보다 편하게 하기 위해서는 필수 조건이라고 생각합니다

 

그럼 DB연동 방법을 알아보도록 하겠습니다

 

mysql 설치방법은 다른 여러 블로그에 나와있습니다

그러니 생략하고 sequelize 라이브러리를 설치하는 방법을 알아보겠습니다

 

sequelize 라이브러리 설치하기

아래의 코드를 실행시켜 라이브러리를 설치합니다

 

npm i -g sequelize-cli
npm i --save sequelize
sequelize init
npm i mysql2

 

 

4개의 라이브러리를 설치하고 나면 디렉터리에 새로운 폴더가 추가가 되어있을 것입니다

 

config 폴더와 models폴더가 추가됩니다 

 

 

웹크롤링-DB연동
웹크롤링 DB연동

 

 

DB 연결 함수 및 config.json 설정값 변경하기

 

 

models의 index파일은 DB를 연결하는 설정 함수들이 포함되어있습니다

대문자 sequelize와 Sequelize가 다르니 꼭 확인 하시길바랍니다

 

 

웹크롤링-DB연동2
웹크롤링 연동 설정함수

 

 

config.jsonDB 연결을 위한

host주소 및 DB 패스워드, username 등이 정의되어있습니다

 

그래서 위의 이미지와 같이 사용하는 코드들이 작성되어있습니다

 

아래는 DB config파일입니다

 

웹크롤링-config
웹크롤링 config

 

이제 테이블을 만들어야 합니다

하지만 sequelize를 활용해서 models 폴더에 파일을 만들면 

테이블을 만들 수 있습니다

 

 

위의 디렉터리 구조에서 proxy.js가 보일 것입니다

그 파일을 보면 아래와 같이 칼럼이 정의되어있습니다

null값을 허용할지와 컬럼이 저장될 자료형이 어떤 것 인지도 정할 수 돼있으며

테이블마다 id는 자동부여됩니다

 

 

웹크롤링-proxy테이블
웹크롤링 proxy테이블

 

 

DB 조회 문 함수

sequelizeORM방식이라서 sql을 몰라도 DB를 다를 수 있지만 

DB를 조금 더 자세하게 알고 싶다면 sql을 필히 공부해야 합니다

너무 sequelize 믿지 마시고 sql을 조금씩 공부를 하시길 바랍니다

 

그럼 데이터를 조회해보는 

몇 가지 함수를 찾아보았습니다

한번 확인해보시고 더 많은 조회 문을 찾아보시길 바랍니다

 

 

 

await db.sequelize.sync(); //db를 연결하는 함수입니다

await Promise.all(fristProxies.map(async (v) => { // 테이블 insert문
  return await db.Proxy.create({ // Proxy파일이 module.export되어 데이터를 가져온다
    ip: v.ip,
    type: v.type,
    latency: v.latency,
    anonymity: anonymity.toString() //''만으로 문자열이 구성되면 에러가 발생한다
  });								// ""을 꼭 확인해야합니다
}))

const fastestProxy = await db.Proxy.findOne({ // 한개의 행을 가져오기
  order: [['latency', 'ASC']]
});

 

 

이것으로 DB 연동은 끝났습니다

간단하게 DB 연동을 할 수 있으니 꼭 사이드 프로젝트를 만들면서

자기의 역량을 키울 수 있는 계기가 되었으면 합니다

 

이것으로 웹크롤링 준비단계는 모두 끝이 났습니다

아래는 제일 처음 웹크롤링 포스팅입니다

관심 있으신 분들은 한번 읽어보시길 바랍니다

아니면 카테고리를 클릭해서 전체 글을 보셔도 되겠지요?

 

 

2022.08.17 - [IT_Web/Nodejs] - node.js로 엑셀 및 CSV 파일 데이터 간단하게 가져오기

 

node.js로 엑셀 및 CSV 파일 데이터 간단하게 가져오기

node.js 관련은 처음 소개하는 것 같습니다 다음에 node.js로 서버 구축하는 것도 알아볼 테니 많은 관심 부탁드립니다 우선 node 다운로드 링크 주소는 사이드바에 생성해 놓을 테니 확인해 보시길

tantangerine.tistory.com

 

 

그럼 다음 포스팅도 기대해주시길 바랍니다

 

우리의 길고 긴 IT 대모험은 항상 밝기만을 기원하겠습니다

그럼 다음 포스팅에서 만나요~ 

728x90
반응형

+ Recent posts

Powered by Tistory, Designed by wallel