inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Node.js로 웹 크롤링하기

6-4. 크롤링 결과물 데이터베이스에 저장하기

skt api로 받은 데이터를 DB에 저장하고 싶습니다.

970

냠냠굿

작성한 질문수 36

0

안녕하세요. skt에서 제공하는 api로 데이터를 받아서 원하는 데이터를 콘솔로그까지 뿌려보는 작업까지는 성공했습니다.

const getData = async() => {

  try {

    const response = await axios(config);

      console.log(response.data['cin']['con']);

}

  catch (error) {

    console.log('최근 데이터가 없습니다.');

  }

}

이 코드에서 response.data 저장된 값을 sequelize로 만들어진 mysql DB 테이블에 원하는 값만 저장하고 싶은데 예시로 짜본 코드는 다음과 같습니다.

const saveData = async()=>{

  try {

    const response = await axios(config);

    await db.db_test.create({

      creator : response.data['cin']['cr'],

      location : response.data['cin']['ppt']['devl'],

      creat_time : response.data['cin']['ct'],

      lastest_time : response.data['cin']['lt'],

      expire_time: response.data['cin']['et'],

      contain_data : response.data['cin']['con']

       }).then(resolved,rejected);

  } catch (error) {

    console.log(error);

    }

}

saveData();

코드를 실행하면 테이블 만들어지는 화면만 나오고 데이터가 Db에 저장이 안됩니다. DB 싱크는 해놓은 상태입니다.

참고로 response.data['cin']에 들어가 있는 데이터는 다음과 같이 저장이 됩니다.

puppeteer 웹-크롤링 nodejs javascript

답변 7

0

제로초(조현영)

네 외부 단말기에서 express 서버 주소로 요청하면 됩니다.

0

냠냠굿

알려주신대로 해서, 이걸 실행하면,  DB에 값이 저장되는 거 까지 확인이 되었습니다. 감사합니다. 

여기서 서버가 계속 돌아가면서, 외부 단말기에서 데이터가 생길때마다 DB에 저장이 되게 만들고 싶은데  익스프레스를 사용하면 될까요?

 

0

냠냠굿

워크벤치로 보면 잘 만들어진건 확인이 되는데 조회된 데이터를 저장을 못하네요. 시간에 쫓기면서 중구난방으로 만드는거 같은데, 갈피를 못 잡겠네요.

0

제로초(조현영)

에러메시지에 적혀있네요. resolved랑 rejected 선언하지 않은 변수인데 사용하셨다고 나오네요. await을 붙이면 then이 필요없죠.

0

냠냠굿

다음과 같이 뜨는데,  콘솔로그로 'con' 값도 출력이 안되고 저런 에러가 뜹니다.

모델 만든 부분도 올리겠습니다.

0

냠냠굿

코드는 이렇게 짜 봤고요. await db.db_test.create 관련된 부분 주석 처리하고 실행하면,

다음과 같이 뜨고 콘솔로그로 보기 위한 'con' 부분 값도 잘 나옵니다. 하지만 위에 주석 처리한 부분을 활성화 시키고 실행하면,

0

제로초(조현영)

db.db_test.create 하기 전에 console.log(response.data['cin']) 하신거죠?

테이블 만들어지는 화면만 나오고라고 하셨는데 테이블 만들어지는 화면이 뭔가요? 테이블은 처음 연결할 때 만들어지고 라우터 실행때는 관련이 없습니다.

그리고 모델을 잘못 만들면 create할 때 데이터가 제대로 안 들어갈 수도 있습니다.

headless 궁금한게 있어요!

0

410

2

6강 프록시 서버 테스트 관련하여

0

337

2

페이스북 로그인 로그아웃 자동화관련

0

276

2

3-2 axios로 이미지 저장하기에서 axios 관련 오류..

0

269

2

3-1 이미지 다운로드 준비하기 에서 선택자 구성 질문

0

250

3

2-4 csv 출력하기에서 오류 발생

0

294

3

try-puppeteer.appspot.com 을 사용할 수 없나요?

0

148

1

크롬 확장프로그램 관련 질문드립니다.

0

169

1

크롤링 자바스크립트 exe파일

0

553

1

puppeteer 관련

0

598

2

6-3 proxy-database 관련

1

287

1

크롤링을 여러개 돌리려면 어떠한 방법을 선택하는게 좋을까요?

0

793

1

네이버 영화 평점 크롤링 (axis cheerio)

1

487

1

아래 noscript 내용입니다.

0

527

1

크롤링

0

374

1

앱 크롤링

0

1783

1

페이스북 로그인

0

544

1

2019년도 영상이라 error가 나는 걸까요? 2-4. csv에 출력하기에서 error

1

461

1

안녕하세요! for of와 Promise.all 차이점에 관해서 질문드려요!

0

440

2

대량 요청 처리 방법

0

463

1

구글 패스워드 자동입력시 오류

0

247

1

반복크롤링 할 때 아래 질문주신분 하고 약간 형태가 달라요

0

361

2

인스타그램 돔의 value 값으로 쿼리셀렉터 찾을 수 있나요?

0

298

1

페이스북 로그인시 돔이 생성 안되는 문제

0

306

1