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

박찬민님의 프로필 이미지

작성한 질문수

Node.js로 웹 크롤링하기

2-2. headless 옵션 이해하기

headless 궁금한게 있어요!

24.10.17 02:05 작성

·

26

0

const browser: Browser = await puppeteer.launch({
      headless: true,
      args: ['--remote-debugging-port=9222', '--no-sandbox', '--disable-setuid-sandbox']
    });
    const page: Page = await browser.newPage();

 

크롤링 만들고 있습니다!

헤드리스를 true로 해봐도, 아예 없애봐도, 아래 args 를 이것저것 달아봐도

크롤링을 시작하면 아래 창과 크롬은 안뜨나 화면에 이렇게 크게 빈화면이 나옵니다.. 저만 그런가요? 이거 없애는 방법이 뭘까요 ㅠㅠ

 

image.png

 

답변 2

0

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

2024. 10. 17. 02:22

저거 작업표시줄에는 어떤 프로그램으로 뜨나요?

박찬민님의 프로필 이미지
박찬민
질문자

2024. 10. 17. 15:29

작업표시줄에는 아예 아무것도 안나오긴 합니다! 정말 그냥 빈화면만 떠요 ㅠㅠ

0

인프런 AI 인턴님의 프로필 이미지

2024. 10. 17. 02:11

안녕하세요, 인프런 AI 인턴입니다. 박찬민님.

헤드리스 모드에서 크롤링을 시도할 때 브라우저가 보이지 않지만 화면에 빈 공간이 보인다는 문제를 겪고 계신 것 같습니다. 이는 Puppeteer 사용 시 설정의 미세한 차이로 인해 발생하는 경우가 있을 수 있습니다.

헤드리스 모드를 사용할 때 주의할 점은 다음과 같습니다:

  1. 헤드리스 모드는 기본적으로 브라우저 창을 띄우지 않고 백그라운드에서 동작합니다. 이는 크롤링을 더 빠르게 하고, 컴퓨터 자원도 절약할 수 있습니다. headless: true로 설정하면 창이 뜨지 않아야 하며, 만약 주위에 빈 공간이 나타난다면 이는 Puppeteer나 브라우저 옵션이 아닌 다른 요인일 수 있습니다.

  2. 주로 사용하는 옵션 설명:

    • --no-sandbox: 보안 제약을 제거합니다. 브라우저가 더 낮은 권한으로 실행됩니다.
    • --disable-setuid-sandbox: 유사하게 보안을 약화시킬 수 있습니다.
  3. 브라우저 로그 확인:

    • --remote-debugging-port=9222를 사용하면서 브라우저 로깅을 확인해 보세요. 어떤 오류 메시지가 출력되는지도 중요합니다.
  4. 일반 발생 문제 및 해결:

    • Puppeteer의 여러 인스턴스를 실행할 때 시스템의 메모리나 자원이 부족할 경우 비정상적인 동작이 발생할 수 있습니다. 이 경우, 다른 작업을 종료하거나 시스템 리소스를 확인해 보는 것이 필요합니다.
    • Puppeteer 및 Chrome 버전이 맞지 않거나 업데이트가 필요할 수 있습니다.

혹시 위 내용으로 해결되지 않는다면, 다음과 같은 질문들을 참고해 보세요.
관련 질문에는 비슷한 문제 해결을 위한 다양한 제안이 있을 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.