inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Node.js로 웹 크롤링하기

1-1. 웹 크롤러 소개

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

794

김태희

작성한 질문수 36

0

안녕하세요, 지금 Puppeteer로 크롤링을 하고있는데 예를들어서 1 ~ 10까지 작업이 각각 있다고했을때 이 10가지의 크롤링 작업을 완료하는데 너무 오래걸려서 Multi Processing 혹은 Multi Thread 방식을 생각하고 있습니다. 둘중에 어떠한게 좋을까요?

 

Puppeteer 1개(node process 1개)로 1~10까지 돌렸을때 너무 오래걸려서 이걸 각각의 작업당 프로세스 1개를 붙힐것인지, 아니면 Process는 하나인데 Worker Thread를 여러개 만들어서 Main 스레드는 1번 작업, 나머지 9개 Worker Thread 생성해서 각각 작업에 한개씩 붙혀서 작업하게끔 하는게 좋을지 고민하고 있는데 혹시 어떠한 방법이 좋을까요 ?

혹시 설명이 부족할까봐 좀 구체적으로 예시를 남기면,

<기존방식>

작업들: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

이름이 main.js인 1개 자바스크립트 파일을 node main.js로 실행 및 이걸로 그냥 1~10까지 작업들을 모두 동기적으로 처리

>> 너무 시간이 오래걸림

<원하는 방식 및 고민하고 있는 2가지 방식>

작업들: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

  1. 이름이 main.js인 1개 자바스크립트 파일이 있고 process.argv로 인자를 줘서 아래와 같이 node process를 10개를 생성하여 각각 작업들을 1개의 프로세스들이 실행

node main.js 1
node main.js 2
node main.js 3
...
node main.js 10

 

  1. 이름이 main.js인 1개 자바스크립트 파일이 있고 거기에서 Worker Thread 9개를 만들어서 Main Thread는 1번작업에 붙히고, 만든 9개 Worker Thread를 각각 2,3,4 ~ 10까지의 작업에 각각 한개씩 붙혀서 작업

감사합니다

javascript node.js 웹-크롤링 puppeteer

답변 1

0

제로초(조현영)

멀티 프로세스와 멀티 스레드의 차이를 생각해보시면 될 것 같습니다. 프로세스는 자원 공유가 안 되고 쓰레드는 가능합니다. 1~10까지의 작업이 서로 중간에 공유할 데이터가 있는지는 모르겠네요. 프로세스의 경우는 DB나 redis를 활용해서 자원 공유해도 됩니다.

headless 궁금한게 있어요!

0

414

2

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

0

339

2

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

0

277

2

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

0

269

2

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

0

250

3

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

0

294

3

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

0

151

1

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

0

169

1

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

0

555

1

puppeteer 관련

0

599

2

6-3 proxy-database 관련

1

288

1

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

1

489

1

아래 noscript 내용입니다.

0

528

1

크롤링

0

377

1

앱 크롤링

0

1783

1

페이스북 로그인

0

544

1

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

1

461

1

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

0

440

2

대량 요청 처리 방법

0

464

1

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

0

250

1

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

0

366

2

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

0

300

1

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

0

310

1

hyperfreed_story_id 사용불가라 태그가 많이 바뀌어서

0

344

1