Paket chromedp
adalah cara yang lebih cepat dan sederhana untuk menjalankan browser yang mendukung Protokol Chrome DevTools di Go tanpa ketergantungan eksternal.
Instal dengan cara Go biasa:
$ ayo dapatkan -u github.com/chromedp/chromedp
Lihat referensi Go untuk dokumentasi dan contohnya. Selain itu, repositori contoh berisi lebih banyak contoh tentang tindakan kompleks, dan tugas umum tingkat tinggi lainnya seperti mengambil tangkapan layar satu halaman penuh.
Saya tidak dapat melihat jendela browser Chrome apa pun
Secara default, Chrome dijalankan dalam mode tanpa kepala. Lihat DefaultExecAllocatorOptions
, dan contoh untuk mengganti opsi default.
Saya melihat kesalahan "konteks dibatalkan".
Ketika koneksi ke browser terputus, chromedp
membatalkan konteksnya, dan ini dapat menyebabkan kesalahan ini. Hal ini terjadi, misalnya, jika browser ditutup secara manual, atau jika proses browser dihentikan atau dihentikan.
Chrome keluar segera setelah program Go saya selesai
Di Linux, chromedp
dikonfigurasi untuk menghindari kebocoran sumber daya dengan mematikan paksa semua proses turunan Chrome yang dimulai. Jika Anda perlu meluncurkan instance Chrome yang sudah berjalan lama, mulai Chrome secara manual dan sambungkan menggunakan RemoteAllocator
.
Mengeksekusi suatu tindakan tanpa
Run
menghasilkan "konteks tidak valid"
Secara default, konteks chromedp
tidak memiliki eksekutor, namun eksekutor dapat ditentukan secara manual jika perlu; lihat edisi #326 sebagai contoh.
Saya tidak bisa menggunakan
Action
denganRun
karena mengembalikan banyak nilai
Bungkus dengan ActionFunc
:
ctx, batal := chromedp.NewContext(context.Background())defer cancel()chromedp.Run(ctx, chromedp.ActionFunc(func(ctx konteks.Context) error { _, err := domain.SomeAction().Do (ctx) kembalikan kesalahan}))
Saya ingin menggunakan chromedp pada lingkungan tanpa kepala
Cara paling sederhana adalah dengan menjalankan program Go yang menggunakan chromedp di dalam image chromedp/headless-shell. Gambar itu berisi headless-shell
, versi Chrome tanpa kepala yang lebih kecil, yang dapat langsung ditemukan chromedp
.
headless-shell
- Sebuah build dari headless-shell
yang digunakan untuk menguji chromedp
chromedp: Cara Baru Mendorong Web - Pembicaraan GopherCon SG 2017
Protokol Chrome DevTools - Referensi Protokol Chrome DevTools
contoh chromedp - Contoh yang lebih rumit untuk chromedp
github.com/chromedp/cdproto
- Referensi Go untuk API Protokol Chrome DevTools yang dihasilkan
github.com/chromedp/pdlgen
- alat yang digunakan untuk menghasilkan cdproto
github.com/chromedp/chromedp-proxy
- proksi CDP sederhana untuk mencatat klien dan browser CDP