-
node js 크롤링 puppeteer 사용개발 2021. 6. 8. 23:08728x90
대표적으로 크롤링하면
편한 파이썬 selenium을 사용하는데 puppeteer는 웹드라이버를 사용하지 않아서 편함
대신 chromium을 써야된다는게 함정 그래도 개인적으로 파이썬보다 좋고 편해요
HTML과 css에 기본적인 지식이 있다고 생각하고 글을 쓸게요
작동시키려면
npm i puppeteer-core
하고 나서 실행시켜야 작동합니다
그냥 puppeteer가 아니라 저는 puppeteer-core를 사용할 거예요
이게 더 가볍다고 해요
코드
유튜브에 접속해서 스크린샷을 찍고 example.png로 저장하는 코드
저기에 headless는 puppeteer가 기본적으로 헤드레스로 작동하기 때문에
제대로 켜지는지 안 켜지는 보려면 저런 식으로 옵션을 줘야 해요
헤드레스는 창이 안 뜨고 백그라운드에서 실행되는 걸 말합니다.
저는 스크린샷말고 유튜브에 접속해서 검색창에 제가 원하는 검색어를 입력하고
제일 처음 뜨는 동영상을 클릭하는 게 제가 원하는 거기 때문에
유튜브에 접속해서 개발자 도구로 검색창의 id를 가져올 거예요
보면 ID가 search니까
queryselector로 input [id=search]이런 식으로 하면 잡힐 거 같아요
해보니까 정상적으로 잡혀요 혹시 이게 이해가 안 가시는 분들은 약간 불안정한 치트키인데
이걸로 하시면 되는데 이게 여러 개 거나 그러면 좀 안돼서 좋은 방법은 아닌 거 같아요
어쨌든 이제 서치바의 태그를 알았으니까
클릭을 하고 제가 원하는 검색어를 입력시킬 거예요
그럴 땐 아래처럼 사용하시면 돼요
await page.type("selector", text")
저는 팝송을 듣고 싶기 때문에 실렉터에 검색바의 input [id=search]를 넣고 텍스트에 팝송을 넣어서
실행시켜봤더니
제대로 입력이 되네요 이런 식으로 이제 검색바 옆에 버튼 누르고 제일 첫 번째 영상을 클릭해서 듣기까지 작성해볼게요
실행해봤더니
제대로 되네요
728x90'개발' 카테고리의 다른 글
pyqt5(2) Thread (0) 2021.07.11 Python Pyqt5 기초// 응답없음해결법 (0) 2021.07.09 Node js로 디스코드 봇만들기 (0) 2021.06.13 Node js socket.io 사용 (웹소켓) (0) 2021.06.07 패킷분석툴 ,wireshark사용법 (0) 2021.05.03