chromedp
패키지는 외부 종속성 없이 Go에서 Chrome DevTools 프로토콜을 지원하는 브라우저를 구동하는 더 빠르고 간단한 방법입니다.
일반적인 Go 방식으로 설치합니다.
$ 가서 -u github.com/chromedp/chromedp를 받으세요
문서와 예제는 Go 참조를 참조하세요. 또한 예제 저장소에는 복잡한 작업과 전체 페이지 스크린샷 찍기와 같은 기타 일반적인 상위 수준 작업에 대한 더 많은 예제가 포함되어 있습니다.
Chrome 브라우저 창이 표시되지 않습니다.
기본적으로 Chrome은 헤드리스 모드로 실행됩니다. DefaultExecAllocatorOptions
및 기본 옵션을 재정의하는 예를 참조하세요.
'컨텍스트 취소됨' 오류가 표시됩니다.
브라우저 연결이 끊어지면 chromedp
컨텍스트를 취소하고 이로 인해 이 오류가 발생할 수 있습니다. 예를 들어, 브라우저를 수동으로 닫거나 브라우저 프로세스가 종료되거나 종료된 경우에 이런 일이 발생합니다.
Go 프로그램이 완료되자마자 Chrome이 종료됩니다.
Linux에서 chromedp
시작된 Chrome 하위 프로세스를 강제 종료하여 리소스 누출을 방지하도록 구성됩니다. 장기 실행 Chrome 인스턴스를 시작해야 하는 경우 Chrome을 수동으로 시작하고 RemoteAllocator
사용하여 연결하세요.
Run
없이 작업을 실행하면 "잘못된 컨텍스트"가 발생합니다.
기본적으로 chromedp
컨텍스트에는 실행 프로그램이 없지만 필요한 경우 수동으로 지정할 수 있습니다. 예제는 문제 #326을 참조하세요.
많은 값을 반환하기 때문에
Action
에Run
을 사용할 수 없습니다.
ActionFunc
로 감싸세요.
ctx, 취소 := chromedp.NewContext(context.Background())defer cancel()chromedp.Run(ctx, chromedp.ActionFunc(func(ctx context.Context) error { _, err := domain.SomeAction().Do (ctx) 반환 오류}))
헤드리스 환경에서 chromedp를 사용하고 싶습니다.
가장 간단한 방법은 chromedp/headless-shell 이미지 내에서 chromedp를 사용하는 Go 프로그램을 실행하는 것입니다. 해당 이미지에는 chromedp
즉시 찾을 수 있는 더 작은 헤드리스 Chrome 빌드인 headless-shell
포함되어 있습니다.
headless-shell
- chromedp
테스트에 사용되는 headless-shell
빌드
chromedp: 웹을 구동하는 새로운 방법 - GopherCon SG 2017 강연
Chrome DevTools 프로토콜 - Chrome DevTools 프로토콜 참조
chromedp 예제 - chromedp
에 대한 더 복잡한 예제
github.com/chromedp/cdproto
- 생성된 Chrome DevTools 프로토콜 API에 대한 Go 참조
github.com/chromedp/pdlgen
- cdproto
생성하는 데 사용되는 도구
github.com/chromedp/chromedp-proxy
- CDP 클라이언트 및 브라우저 로깅을 위한 간단한 CDP 프록시