인프런 커뮤니티 질문&답변

strength C_님의 프로필 이미지
strength C_

작성한 질문수

Node.js로 웹 크롤링하기

readline 으로 사용자 입력을 기다린 후 puppeteer 코드 실행하기

작성

·

491

0

코드 설명 : 사용자의 입력을 받아 입력 데이터를 검색하는 프로그램

11번가 주소로 이동 > 검색창 기다리기 > inputText() 로 입력받기 (inputText.js) > searchText에 저장된 입력데이터를 typing하기 > 검색버튼 누르기

 

첫번째 사진 15번부터 문제가 생긴듯 합니다. 문제는 입력을 기다리기 전에 밑에 코드들을 시작합니다. 이것을 해결하기 위해 readline-sync npm을 사용해 보았지만 인코딩오류(찾아봤지만 해결이 안됨)때문에 안되더라구요ㅠㅠ 

1. 사용자가 입력할 때까지 기다리기

2. 입력한 데이터로 검색하기

이 기능을 구현하려면 어떻게 해야 할까요??? 

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

https://stackoverflow.com/questions/52998673/how-can-i-pause-and-wait-for-user-input-with-puppeteer

이런 방법이 있네요. 근데 애초에 미리 node에서 데이터를 입력받아 검색할 수도 있습니다.

strength C_님의 프로필 이미지
strength C_
질문자

node에서 데이터를 입력받는 것은 어떤건가요???

요런거 말씀하시는 건가요???

await page.type("셀렉터", "문자")
제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

저건 개발자가 입력하는 것이고요.

node에서 readline을 먼저한 후에 값을 받고 나서 퍼페티어를 실행할 수도 있습니다.

또는 노드 실행 시 node 파일명.js 검색어 해서 process.argv로 값을 받을 수도 있고요. 

strength C_님의 프로필 이미지
strength C_
질문자

올려주셨던 링크, 퍼페티어 밖에서 받는 방법 등 해보았지만 잘 안됐습니다. ㅠㅠ

콘솔창에 "검색어를 입력하세요 : " 가 뜨자마자 퍼페티어가 실행되고 그 밑에 코드들이 계속 실행되는 것을 볼 수 있었습니다.. ㅠㅠ 

 

process.argv로 받아 어떻게든 하긴 했지만,,, 프로그램 실행 중 동기적으로 받을 방법을 계속 생각하게 되네요

strength C_님의 프로필 이미지
strength C_

작성한 질문수

질문하기