Saus periksa adalah alat pemantauan konten web umum yang dapat memantau perubahan konten web dan mengirimkan perubahan ke WeChat
Microsoft Tepi | Google Chrome |
---|---|
Klik ikon di atas untuk masuk ke halaman toko atau cari "Periksa Saus" langsung di toko
Versi detailnya, hampir 2 jam
Untuk perintah instalasi image Docker, silakan merujuk ke bagian instalasi cloud nanti.
Check Sauce adalah alat pemantauan konten web yang diproduksi oleh Sugar Cube Balloon. Alat ini mencakup plug-in browser Edge/Chrome dan cloud yang dapat diatur sendiri.
Berdasarkan plug-in browser, secara teoritis dapat memantau konten (teks) apa pun di halaman web melalui pemilih visual . Selain pemberitahuan browser, ia juga dapat bekerja sama dengan Server Sauce untuk mendorong perubahan pada WeChat atau ponsel.
Prinsip dari Saus Periksa adalah membuka halaman web di latar belakang melalui plug-in browser untuk pemantauan, sehingga sepenuhnya mensimulasikan perilaku pengguna yang sebenarnya . Ini dapat memantau halaman web dinamis yang paling kompleks, berbagai halaman latar belakang yang memerlukan login, dan (di sebagian besar case) ) secara otomatis melanjutkan status login.
Selain mendukung pemantauan konten halaman web (Dom), juga mendukung status HTTP (pemantauan melalui GET), metode JSON dan RSS.
Dengan cloud yang dapat diatur sendiri, tugas monitoring dapat disinkronkan ke server, sehingga ketika browser dan komputer ditutup, tugas monitoring tetap dapat berjalan secara rutin.
Plug-in dapat digunakan secara mandiri, tetapi tugas pemantauan terjadwal tidak akan dijalankan setelah dimatikan.
Saat ini, Check Sauce sedang dalam pengujian internal dan belum dipasang di Edge Store.
Unduh paket ZIP plug-in (alamat unduhan Github, tidak perlu registrasi) dan unzip ke dalam direktori (selanjutnya disebut A).
Buka halaman Edge plug-in, buka "Developer Mode", klik "Load Unpacked", dan pilih direktori A yang diekstraksi di atas.
Jika berhasil dimuat, Anda dapat melihat antarmuka Periksa saus. Jika gagal, biasanya disebabkan oleh direktori tambahan saat dekompresi. Anda dapat mencoba memilih ulang direktori di bawah direktori A.
Setelah menginstal plug-in, buka halaman web yang ingin Anda pantau, klik kanan pada halaman web tersebut, dan Anda akan melihat item "Temukan Objek Pemantauan".
Setelah mengklik, pemilih visual mulai diinisialisasi.
Gerakkan mouse untuk melihat area yang disorot, letakkan pada teks yang akan dipantau dan klik tombol kiri mouse.
Perhatikan bahwa area pilihan harus berisi teks, jika tidak, kosong akan dikembalikan. Ada banyak teks yang tercetak pada gambar, yang juga akan menghasilkan nol.
Anda akan diarahkan ke halaman tambah.
Anda dapat mengubah nama, mengatur interval pemantauan, penundaan, dan jumlah percobaan ulang maksimum. Sebelum menyimpan, sebaiknya klik tombol测试
setelah kolom CSS选择器路径
untuk mengujinya.
Jika muncul pesan “Isi deteksi kosong”, berarti ada masalah. Klik lagi untuk mengamati:
Jika Anda menemukan bahwa halaman ditutup tanpa keluarnya favicon setelah dibuka, Anda dapat menambah jumlah detik "pembacaan tertunda"; jika masih kembali kosong setelah dibuka, maka jalur pemilih yang dibuat secara otomatis sekarang mungkin salah .
Anda dapat menggantinya dengan yang dibuat secara otomatis oleh browser, sebagai berikut:
① Klik kanan pada teks yang akan diperiksa dan pilih "inspect/inspect element"
② Saat ini, alat pengembang akan terbuka secara otomatis dan baris elemen yang sesuai dalam kode sumber akan dipilih secara otomatis. Klik kanan pada baris yang disorot dan pilih "Salin" → "Salin pemilih"
③ Masukkan jalur yang disalin ke clipboard ke dalam baris "CSS Selector Path", dan klik tombol "Test" lagi untuk menguji.
Setelah tes lulus, klik "Kirim" untuk menyimpan titik pemantauan.
Saat menambah dan mengubah titik pemantauan, isi Sendkey untuk mengirim pesan ke Server.
Masuk ke situs resmi Server Sauce, masukkan "Key&API", dan klik tombol "Salin".
Masuk ke situs resmi Server Sauce, masukkan "Konfigurasi Saluran", pilih saluran yang akan didorong, dan konfigurasikan sesuai dengan petunjuk di halaman. Pesan dapat dikirim ke "PushDeer" dan berbagai robot grup.
Jika saluran di atas tidak dapat memenuhi kebutuhan Anda, Anda dapat memilih saluran "khusus" dan mengirimkan permintaan http yang disesuaikan. Metode ini kompatibel dengan sebagian besar antarmuka notifikasi.
Klik panah atas dan bawah di sisi kanan atas daftar titik pemantauan untuk mengimpor dan mengekspor semua titik pemantauan.
Klik "Clipboard" di daftar titik pemantauan untuk mengekspor pengaturan titik pemantauan saat ini ke clipboard.
Ekspor data terlihat seperti ini:
checkchan://title=Server%E9%85%B1%E5%AE%98%E6%96%B9%E7%BD%91%E7%AB%99%E7%8A%B6%E6%80%81&url=https%3A%2F%2Fsct.ftqq.com&type=get&code=200&rss_field=title&delay=3&retry=10
Setelah menyalin karakter di atas, tempelkan melalui Ctrl+V di antarmuka plugin Periksa browser, dan secara otomatis akan mengenali dan melompat ke antarmuka "Tambahkan Titik Pemantauan".
Beberapa tugas hanya perlu dijalankan selama jangka waktu tertentu Untuk menghemat sumber daya, kami telah menambahkan fungsi "batas siklus pemantauan". Misalnya, jika animasi diupdate setiap hari Jumat pukul 10 pagi, maka kita dapat mengatur "batas siklus pemantauan" sebagai berikut:
Dengan cara ini, pemantauan tidak lagi dimulai pada periode waktu lain. Untuk tugas dengan periode kejadian yang tidak dapat diprediksi, cukup gunakan default "setiap menit".
Perhatikan bahwa di atas "batas siklus pemantauan", ada juga "interval pemantauan".
Jika "Batas Periode Pemantauan" adalah setiap menit dan "Interval Pemantauan" adalah 60 menit, maka pemantauan akan dilakukan setiap menit, dan setelah pemantauan berhasil, pemantauan berikutnya akan dilakukan 60 menit kemudian.
Pada saat yang sama, karena pelaksanaan tugas pemantauan itu sendiri memerlukan waktu, ketika "interval pemantauan" adalah 1 menit, tugas tersebut biasanya hanya akan dijalankan setiap satu menit (yaitu, setiap dua menit).
Versi terbaru mendukung sintaks ekstensi Selector: karena lapisan dasar diimplementasikan melalui document.querySelectorAll
, semua elemen yang cocok akan dikembalikan dalam array. Ketika elemen-elemen ini dimiliki oleh node induk yang sama, kita dapat menggunakan :nth-of-type(1)
atau :nth-child(1)
untuk menentukan item dalam array.
Namun jika elemen tersebut tidak termasuk dalam node induk yang sama, maka cara di atas akan gagal. Sintaks selector@n ditambahkan di sini, memungkinkan kita menentukan elemen dari array yang dikembalikan oleh Selector. Misalnya, .booklist .item@0
akan mengembalikan document.querySelectorAll(.booklist .item)[0]
.
Selain digunakan pada penyeleksi DOM, sintaks @ juga dapat digunakan untuk menentukan hasil pemantauan RSS. Secara default, RSS akan mengembalikan artikel pertama dari keseluruhan feed. Anda dapat menambahkan @1 setelah url feed untuk menentukannya guna memantau artikel kedua (penghitungan masih dimulai dari 0).
Level terendah dari Selector mengembalikan sebuah elemen, tetapi terkadang kita perlu memantau nilai atribut tertentu dari elemen ini. Misalnya, pantau href
suatu tautan. Untuk mengatasi masalah ini, kami memperluas sintaks pemilih untuk memungkinkan pengguna memperoleh nilai atribut suatu elemen melalui atribut%elemen. Misalnya: article#post-180 > div > div > p > a%href
. Ketika %
dan @
digunakan secara bersamaan, %
harus mengikuti elemen, seperti: article#post-180 > div > div > p > a%href@0
.
Untuk memiliki pemahaman yang lebih jelas tentang pelaksanaan tugas terjadwal, Anda dapat membuka "Alat Pengembang" (F12) dan melihat log yang dihasilkan oleh tugas tersebut di tab Console
.
Informasi kesalahan juga akan ditampilkan dalam garis yang disorot merah di sini. Saat menemukan bug, memberikan tangkapan layar log kesalahan dapat membantu kami menemukan masalahnya dengan lebih cepat.
Setelah disimpan di toko, dapat ditingkatkan secara otomatis. Sebelum itu, diperlukan peningkatan manual. Metode pemutakhiran adalah dengan mengunduh paket zip, mengekstraknya, menimpa file asli, lalu "memuat ulang" di panel manajemen plugin browser.
Gambar versi baru telah mengintegrasikan versi cloud dan desktop jarak jauh, dan dapat digunakan hanya dengan satu instalasi.
️ Catatan khusus: Karena jaringan dan lingkungan cloud berbeda dengan mesin lokal, tidak ada jaminan bahwa tugas yang dapat dijalankan oleh mesin lokal akan berhasil dijalankan di cloud. Beberapa halaman web dan halaman web yang rumit efek yang lebih dinamis mungkin gagal.
Menyiapkan versi cloud yang diinstal sendiri memerlukan landasan teknis. Pengguna non-teknis disarankan untuk membeli versi cloud resmi kami (akan dirilis setelah pengujian internal selesai)
Membutuhkan lingkungan buruh pelabuhan. Jika Anda tidak memiliki server cloud, Anda dapat melihat server harga khusus Tencent Cloud seharga 30 hingga 50 yuan untuk pesanan pertama.
Klik di sini untuk masuk ke antarmuka alat
Masuk ke server (dengan asumsi IP-nya adalah IPB), buat data
direktori baru di bawah direktori yang akan diinstal, dan buat agar dapat ditulis:
mkdir data && chmod 0755 data
Buat file docker-compose.yml
baru, sesuaikan konten berikut seperti yang diminta, tempel dan simpan:
version : ' 3 '
services :
chrome :
image : easychen/checkchan:latest
volumes :
- " ./data:/checkchan/data "
environment :
- " CKC_PASSWD=<这里是远程桌面的密码,写一个你自己想的> "
- " VDEBUG=OFF "
- " VNC=ON "
# - "WIN_WIDTH=414"
# - "WIN_HEIGHT=896"
# - "XVFB_WHD=500x896x16"
- " API_KEY=<这里是云端的API KEY,写一个你自己想的> "
- " ERROR_IMAGE=NORMAL " # NONE,NORMAL,FULL
# - "SNAP_URL_BASE=<开启截图在这里写服务器地址(结尾不用加/),不开留空>..."
# - "SNAP_FULL=1"
- " TZ=Asia/Chongqing "
# - "WEBHOOK_URL=http://..." # 云端 Webhook地址,不需要则不用设置
# - "WEBHOOK_FORMAT=json" # 云端 Webhook POST 编码,默认是 Form
ports :
- " 5900:5900 "
- " 8080:8080 "
- " 8088:80 "
Ganti <这里是远程桌面的密码,写一个你自己想的>
dan <这里是云端的API KEY,写一个你自己想的>
dengan kata sandi yang tidak diketahui orang lain (selanjutnya disebut kata sandi C dan D). Berhati-hatilah untuk tidak menyertakan karakter $
, dan tidak akan ada lagi tanda kurung siku <>
setelah penggantian.
Jika Anda tidak ingin memulai desktop jarak jauh, harap ubah VNC=ON
menjadi VNC=OFF
.
Pastikan pengguna Docker memiliki izin menulis ke direktori ini dan jalankan perintah berikut di direktori yang sama:
docker-compose up -d
Jika diminta bahwa layanan buruh pelabuhan tidak diinstal/tidak ditemukan/tidak dimulai, Anda dapat menambahkan sudo sebelum docker-compose dan coba lagi.
Setelah menunggu inisialisasi selesai, kunjungi http://$BBB:8080
(ganti $BBB dengan IP B). Jika Anda melihat antarmuka Web NoVNC, berarti container telah dimulai.
Port tempat layanan berada adalah:
Anda juga dapat meneruskan parameter di docker-compose
ke docker untuk memulai:
docker run -d -p 8088:80 -p 8080:8080 -p 5900:5900 -v ${PWD} /data:/checkchan/data -e API_KEY=123 -e VDEBUG=OFF -e VNC=ON -e SNAP_URL_BASE=http://localhost:8088 -e CKC_PASSWD=123 -e TZ=Asia/Chongqing easychen/checkchan:latest
Silakan ganti 123 pada perintah di atas dengan kata sandi yang ingin Anda atur, dan ganti SNAP_URL_BASE
dengan IP eksternal server (jika Anda ingin melihat tangkapan layar di ponsel Anda).
Hanya model Synology yang mendukung Docker yang dapat menginstal Check Sauce. Selain menginstalnya langsung melalui baris perintah, Anda juga dapat merujuk ke tutorial instalasi GUI.
Variabel Volume
dan lingkungan dapat mengacu pada pengaturan buruh pelabuhan/penulisan di atas.
Setelah image cloud Check Sauce diperbarui, Anda dapat mengupgrade layanan cloud yang sedang berjalan ke versi terbaru. Begini caranya:
Hentikan dulu container yang ada:
Jalankan melalui penulisan buruh pelabuhan:
docker-compose down
Jalankan docker ps
langsung dimulai oleh docker untuk menanyakan id container, dan mampir ke docker stop 容器id
.
Kemudian jalankan docker pull untuk menarik versi terbaru:
docker pull easychen/checkchan:latest
Setelah selesai, baru mulai layanannya.
Klik云端服务
di menu di kanan atas plugin.
Masukkan http://$BBB:8088
pada kolom服务器地址
( API_KEY
$BBB dengan IP B, tidak perlu menambahkan parameter kunci pada URL di sini);
Klik Simpan. Setelah koneksi berhasil, konfigurasi selesai.
Setelah mengonfigurasi cloud, kembali ke halaman daftar. Akan ada ikon "Komputer" tambahan di ujung kanan setiap baris. Jika diklik, ikon tersebut akan berubah menjadi ikon "Cloud", dan tugas akan dijalankan di cloud alih-alih.
Klik tombol "Cloud + Panah" di sudut kanan atas untuk secara aktif menyinkronkan tugas ke cloud.
Saus cek juga akan otomatis tersinkronisasi setiap sepuluh menit.
Cloud yang diinstal sendiri oleh Check Sauce mendukung pengambilan tangkapan layar dari tugas jenis halaman web (dom), yang dapat diaktifkan dengan meneruskan variabel lingkungan ke gambar:
Silakan merujuk ke docker-compser.yml
di atas. Cukup tambahkan variabel lingkungan dan mulai ulang layanan.
Melihat
Cloud yang dihosting sendiri oleh Saus Periksa memiliki antarmuka bawaan untuk uplink RSS halaman dinamis:
http://$ip:$port/rss/upload?key=$api_key
http://$ip:$port/image/rss.xml?key=$api_key
Saus cek memiliki antarmuka bawaan untuk sinkronisasi cookie di cloud:
http://$ip:$port/cookie/sync?key=$api_key
Prinsip tugas cloud Check Sauce adalah menyinkronkan cookie ke cloud dan kemudian melihatnya dengan browser. Namun, karena IP ekspor mungkin berupa ruang komputer dan pusat data, terdapat kemungkinan pengendalian risiko jika frekuensinya terlalu tinggi. Jika cloud diterapkan di rumah, efeknya sama dengan mengaksesnya di komputer di rumah.
Secara umum, masalah tugas lokal yang dapat dijalankan tetapi tidak dapat dijalankan di cloud disebabkan oleh perbedaan lingkungan jaringan dan perangkat lunak browser di antara keduanya, seperti:
Karena memori server biasanya tidak sebesar komputer kita, banyak tugas yang dijalankan OK secara lokal akan gagal di tengah jalan karena detik "bacaan tertunda" menjadi terlalu kecil saat disinkronkan ke cloud. Jika Anda mengalami situasi serupa, coba tambahkan "pembacaan tertunda".
Jika ini tidak berhasil, sering kali hal ini terjadi karena ada perbedaan antara halaman web yang ditampilkan oleh browser cloud headless dan browser lokal. Untuk situasi ini, kami membuat tangkapan layar dari tugas terbaru yang gagal, yang dapat dilihat di bawah " menu Layanan Cloud".
Klik tombol "Screenshot Kegagalan" untuk melihatnya. Catatan: Anda hanya perlu menggunakan gambar terbaru dan meneruskan variabel lingkungan ERROR_IMAGE=NORMAL
. Jika Anda ingin mengambil gambar halaman web lengkap, Anda dapat meneruskan ERROR_IMAGE=FULL
.
Jika tugas gagal dan tidak ada tangkapan layar, berarti tugas tersebut tidak gagal karena pemilih CSS tidak terkena. Coba tambahkan "pembacaan tertunda" untuk menyelesaikan masalah.
Anda juga dapat melihat log tugas cloud di halaman ini. Log di sini tidak menyertakan tugas yang dipicu dengan mengklik tombol "Monitor" secara manual. Jika tidak ada tugas yang bisa dijalankan (tugas dipicu secara teratur), log mungkin juga kosong.
Selain cloud kami sendiri, kami juga mengintegrasikan mode desktop jarak jauh ke dalam gambar. Ini memungkinkan Anda untuk terhubung ke server melalui VNC dan menggunakannya seperti browser lokal.
Versi remote desktop sebelumnya merupakan gambar mandiri, namun sekarang terintegrasi ke dalam easychen/checkchan, sehingga Anda dapat menggunakannya secara langsung.
Setelah layanan dimulai, layanan dapat dihubungkan melalui perangkat lunak klien VNC.
Di remote desktop, Anda dapat langsung terhubung ke cloud dalam wadah yang sama. Isikan http://localhost
sebagai alamat server dan masukkan API KEY seperti yang diatur pada YML di atas.
Anda dapat menambahkan variabel lingkungan dan mengubah batasan lebar dan tinggi layar agar lebih mudah digunakan di ponsel:
- WIN_WIDTH=414
- WIN_HEIGHT=896
- XVFB_WHD=500x896x16
Contoh yang ditambahkan ke perintah buruh pelabuhan:
docker run -d -p 5900:5900 -v ${PWD} /data:/checkchan/data -e CKC_PASSWD=123 -e WIN_WIDTH=414 -e WIN_HEIGHT=896 -e XVFB_WHD=500x896x16 easychen/checkchan:latest
Konsumsi harian kontainer adalah 300M~500M. Lingkungan berjalan dengan memori lebih besar akan lebih stabil. Jika Anda mengalami masalah, Anda dapat mencoba menambah memori.
Anda dapat menggunakan cloud yang terintegrasi dalam gambar yang sama untuk men-debug tugas cloud secara visual. Atur VDEBUG
dalam file YML ke ON
, lalu mulai ulang kontainer untuk melihat proses detail halaman web pemantauan cloud.
environment :
- " CKC_PASSWD=123 "
- " VDEBUG=ON "