inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Node.js로 웹 크롤링하기

5-1. 페이스북 로그인 태그 분석

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

277

산마로

작성한 질문수 20

0

안녕하세요.. 5-1 페이스북 로그인/로그아웃 관련 강의를 따라 하고 있습니다.

puppeteer의 page를 이용해서 로그인 버튼까지는 클릭해서 실행까지는 되는 것 같습니다.

그래서 로그인 버튼 클릭후에 사용자에게 로그인 승인 알람 메시지를 처리해야 실질적인 로그인 페이지로 넘어가고 있는 상황입니다. 이럴경우 강의 시간에 알려주신 방법들은 대부분이 타임아웃 오류가 발생합니다.

 

이 부분을 어떻게 해결해야 할지 방법을 알려 주시면 좋겠습니다. 강의 내용의 모습이랑. 현재시점의 페이스북이 달라서 수정하는 것이 초보자에게는 어렵네요..

 

javascript node.js 웹-크롤링 puppeteer

답변 2

0

제로초(조현영)

만약 단순히 타임아웃을 늘려서 해결할 수 있다면 대부분은 두 번째 인수로 타임아웃 옵션을 제공합니다.

page.waitForSelector(선택자, { timeout: 30_000 }) 밀리세컨드 단위라 30이 아니라 30000입니다. 타임아웃으로 해결되는 문제가 아니라면 알려주세요

0

산마로

로그인 2단계 인증이 문제인 것 같습니다. 이메일로 인증번호를 받는 경우 경우에 따라서는 이메일이 오는데 시간이 오래 걸리더라구요... 그리고 제 핸드폰 단말로는 인증 메시지가 처음에는 서네번 오다가 지금은 오지를 않고 있습니다. 이런 경우 timeout을 약 1시간 정도로 설정해 두면 될까요?

0

제로초(조현영)

네네 사람이 수동으로 인증받아서 해야하는 경우에는 충분히 늘려주는 수밖에 없습니다.

0

산마로

프로그램적으로 처리하는 방법이 없을까요? 강의시간에 알려주신 것처럼... 무작정 10초를 기다리기 보다는 어떤 이벤트를 기반으로 확인하는 방법을 알려주신 것처럼요...저는 초보라서 잘모르지만...

0

제로초(조현영)

이메일이 온다면 이메일을 열어서 인증 버튼을 누르는 것까지 퍼페티어로 자동화할 수는 있겠습니다만 여전히 페이스북에서는 기다리고있어야 하는 게 맞습니다.

0

산마로

한가지 더 문의 드립니다.

얘기해주신대로 waiforSelector를 이용해서 로그아웃 메뉴가 있는 내 프로필관련 요소가 표시될때 까지 최대 10분을 대기하도록해서 테스트 했더니, 더이상 타임아웃으로 인한 오류는 발생안하는 것 같습니다. 지금까지 테스트로는..

그런데 문제는 로그인 버튼을 클릭한 후 2단계 인증을 진행한 후에는, 해당브라우저를 신뢰하는 기기로 등록하겠냐라는 페이지가 또 나타나는데, 이 부분을 그냥 스킵하고 넘어가게 만들 수 없을까요? 이 페이지에서 머물다 보면, 로그인된 페이스북 페이지가 나오지 않아서 또 문제가 될 것 같은데... 지금은 재빨리 등록하라고 버튼 클릭을 하고 있지만.., 이러한 신뢰하는 기기로 등록하는 페이지가 매번 나타나는 것인지, 아닌지도 모르겠습니다. 이런 부분은 어떻게 처리해야 하는지 조언 부탁드립니다.

0

제로초(조현영)

페이스북은 보통 자기한테 로그인 한 기기/브라우저를 기록하고 있는데요. 퍼페티어 같은 브라우저를 처음 봐서 뜨는 것입니다. 저건 보통 한 번은 뜰 수 있고 다음 번에 안 뜨는 경우가 많은데, 만약 매번 퍼페티어를 다른 브라우저로 인식한다면 매번 뜰 것입니다. 매번 뜬다면 자동화할 수 있고, 한 번만 뜬다고 해도 try/catch문 안에서 저 페이지가 떴나를 검사해서 다음으로 넘어가게 할 수 있습니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다, 산마로님.

페이스북 로그인 프로세스가 변경되어, 로그인 승인 알람 메시지를 처리하는 부분에서 어려움이 있으신 것 같습니다. 유사한 문제를 다룬 질문과 답변을 참고하시면 도움이 될 것 같습니다.

  1. 페이스북 로그아웃 관련해서 문의드립니다:

    • 페이스북 로그아웃 버튼을 찾는 방법에 대해 다룬 게시물입니다. 해당 방법을 응용하여 승인 알람 메시지 버튼을 탐색할 수 있습니다.
  2. facebook 로그인 자동화에서 질문 있습니다:

    • Puppeteer를 이용해 특정 요소를 클릭하는 방법과, 해당 요소가 나타나기를 기다리는 await page.waitForSelector 사용 예제입니다. 로그인 승인 알람 메시지를 기다린 후, 해당 버튼을 클릭하는 식으로 적용할 수 있습니다.

이 예제들은 puppeteer를 사용하여 동적으로 변하는 페이스북 페이지 요소를 처리하는 방법에 대해 자세히 설명하고 있습니다.

마지막으로, 페이스북 로그인 승인이 완료될 때까지 기다린 후, 해당 요소를 클릭하는 코드 예제를 추가로 작성해 보았습니다:

await page.waitForSelector('.classname_of_approval_button');  // 실제 승인 버튼의 클래스 이름으로 변경 필요
await page.click('.classname_of_approval_button');

이 코드를 통해 페이지가 반응할 때까지 기다리고, 로그인 승인 버튼을 클릭하여 다음 단계로 진행할 수 있습니다.

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

headless 궁금한게 있어요!

0

414

2

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

0

339

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

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

0

794

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