cari
Rumahhujung hadapan webtutorial jsWebKit dan Phantomjs tanpa kepala

Headless WebKit and PhantomJS

mata teras

    Phantomjs, pelayar tanpa kepala berasaskan WebKit yang membolehkan automasi programatik yang lebih cepat dan ujian laman web tanpa memerlukan antara muka pengguna grafik.
  • Phantomjs menyediakan ciri -ciri yang kuat seperti keupayaan untuk berinteraksi dengan halaman melalui JavaScript, yang membolehkan automasi mudah tugas seperti mengklik butang, mengemukakan borang, dan juga memuatkan dan memanipulasi halaman web menggunakan perpustakaan seperti standard DOM API atau jQuery.
  • PhantomJS menyediakan API sistem fail yang luas yang membolehkan aplikasi menyimpan kod sumber ke sistem fail, mengambil tangkapan skrin laman web, dan juga memasukkan fail skrip luaran ke dalam halaman.
  • Walaupun Phantomjs berkuasa, ia tidak begitu terintegrasi dengan Node.Js.
Jika anda membaca artikel ini, kemungkinan besar anda akan tahu apa penyemak imbas. Sekarang keluarkan GUI dan anda mendapat penyemak imbas yang tidak dipanggil

. Pelayar tanpa kepala boleh melakukan semua perkara yang sama seperti pelayar biasa, tetapi lebih cepat. Mereka sesuai untuk mengautomasikan dan menguji laman web secara programatik. Terdapat banyak pelayar tanpa kepala yang ada pada masa ini, dan Phantomjs adalah yang terbaik di kalangan mereka. Dibina di Webkit, enjin di belakang Chrome dan Safari, Phantomjs menyediakan anda dengan ciri -ciri penyemak imbas yang kuat tanpa memerlukan GUI yang besar. Bermula dengan Phantomjs adalah mudah - hanya muat turun yang boleh dilaksanakan. Seterusnya, buat fail bernama hello.js dan tambahkan baris kod berikut:

console.log("Hello World!");
phantom.exit();
Untuk melaksanakan skrip, jalankan arahan berikut. Perhatikan bahawa phantomjs boleh dilaksanakan mesti berada dalam direktori semasa, atau di suatu tempat di jalan alam sekitar. Jika semuanya dikonfigurasikan dengan betul, Phantomjs akan mencetak "Hello World!"

phantomjs hello.js

Menggunakan laman web

Selepas Phantomjs sedang berjalan, anda boleh mula mengautomasikan web. Contoh berikut memuatkan halaman utama Google dan menjimatkan tangkapan skrin ke fail. Baris 1 mencipta contoh baru laman web. LINE 4 LOADS Google.com. Selepas halaman dimuatkan, fungsi panggil balik onLoadFinished () akan dilaksanakan. Fungsi panggil balik menerima status parameter tunggal, yang menunjukkan sama ada halaman itu dimuatkan dengan jayanya. URL untuk memuatkan halaman boleh didapati di page.url. Harta ini amat berguna apabila halaman mengandungi pengalihan, dan anda ingin mengetahui dengan tepat di mana anda berada. Baris 8 menggunakan kaedah render () halaman untuk mengambil tangkapan skrin. render () boleh membuat fail PNG, GIF, JPEG, dan PDF.

console.log("Hello World!");
phantom.exit();

Tetapan halaman

Banyak tetapan objek halaman boleh disesuaikan mengikut keperluan permohonan. Sebagai contoh, jika anda hanya berminat untuk memuat turun kod sumber, anda boleh mempercepatkan aplikasi anda dengan mengabaikan fail imej dan menutup JavaScript. Contoh penulisan semula berikut mencerminkan perubahan ini. Tetapan yang diubah dipaparkan pada baris 3 dan 4. Perhatikan bahawa sebarang perubahan tetapan mesti dibuat sebelum memanggil terbuka (). Jika anda melihat tangkapan skrin contoh ini, anda akan melihat bahawa imej logo Google hilang, tetapi seluruh halaman tetap sama.

phantomjs hello.js

Mengakses sistem fail

Setakat ini, contoh kami telah memuatkan halaman dan menyimpan tangkapan skrin sebagai fail imej. Walaupun ini sudah pasti sejuk, banyak aplikasi lebih suka menyimpan kod sumber ke dalam sistem fail. PhantomJS melakukan ini dengan menyediakan pelbagai sistem fail API fail. Contoh berikut menggunakan modul sistem fail untuk menulis kod sumber Google.com ke fail. Pertama, import modul sistem fail pada baris 2. Pada baris 6, buka fail output untuk menulis. Pada baris 7, gunakan kaedah Tulis () untuk menulis data ke fail. Kod sumber sebenar boleh didapati melalui harta kandungan halaman. Akhirnya, tutup fail dan tamatkan Phantomjs.

var page = require("webpage").create();
var homePage = "http://www.google.com/";

page.open(homePage);
page.onLoadFinished = function(status) {
  var url = page.url;

  console.log("Status:  " + status);
  console.log("Loaded:  " + url);
  page.render("google.png");
  phantom.exit();
};

Jalankan JavaScript

Salah satu ciri yang paling kuat dari Phantomjs adalah keupayaan untuk berinteraksi dengan halaman melalui JavaScript. Ini menjadikannya sangat mudah untuk mengautomasikan tugas -tugas seperti mengklik butang dan menyerahkan borang. Contoh seterusnya kami melakukan carian web dengan memuatkan laman utama Google, menaip pertanyaan, dan mengemukakan borang carian. Permulaan contoh harus kelihatan biasa. Kandungan baru bermula pada baris 8 dan kami menentukan halaman mana yang telah dimuatkan. Jika ini adalah halaman utama, kaedah menilai () halaman dipanggil. menilai () melaksanakan kod yang anda berikan dalam konteks halaman. Ini sebenarnya memberi anda keizinan yang sama seperti pemaju asal halaman. Betapa sejuknya ini?

var page = require("webpage").create();
var homePage = "http://www.google.com/";

page.settings.javascriptEnabled = false;
page.settings.loadImages = false;
page.open(homePage);
page.onLoadFinished = function(status) {
  var url = page.url;

  console.log("Status:  " + status);
  console.log("Loaded:  " + url);
  page.render("google.png");
  phantom.exit();
};

di dalam penilaian () kita dapati kotak carian dan bentuk. Kami menetapkan nilai kotak carian kepada "JSPRO" dan menyerahkan borang tersebut. Ini akan menyebabkan kaedah OnLoadFinished () halaman dipecat lagi. Walau bagaimanapun, kali ini, tangkapan skrin hasil carian akan diambil, dan Phantomjs akan keluar. Phantomjs juga menyediakan dua kaedah termasukJs () dan suntikan (), yang membolehkan anda menambah fail skrip luaran ke halaman. termasukJS () digunakan untuk memasukkan sebarang fail skrip yang boleh diakses oleh halaman. Sebagai contoh, anda boleh menggunakan kod berikut untuk memasukkan jQuery dalam contoh sebelumnya. Perhatikan panggilan untuk memasukkanjs () dalam baris 9, dan sintaks jQuery di dalam penilaian ().

var page = require("webpage").create();
var fs = require("fs");
var homePage = "http://www.google.com/";

page.open(homePage);
page.onLoadFinished = function(status) {
  var file = fs.open("output.htm", "w");

  file.write(page.content);
  file.close();
  phantom.exit();
};
Kaedah suntikan

() adalah serupa dengan termasukJs (). Perbezaannya ialah fail skrip yang disuntik tidak perlu diakses dari objek halaman. Sebagai contoh, ini membolehkan anda menyuntik skrip dari sistem fail tempatan anda.

phantomjs dan node.js

Malangnya, Phantomjs belum diintegrasikan dengan Node.js. Sesetengah projek telah dibuat untuk cuba mengawal Phantomjs dari Node.js, tetapi mereka semua agak canggung. Projek sedia ada menggunakan modul proses kanak -kanak untuk menghasilkan contoh Phantomjs. Seterusnya, Phantomjs memuat laman web khas yang berkomunikasi dengan Node.js menggunakan WebSockets. Ia mungkin tidak ideal, tetapi ia berfungsi. Dua modul nod Phantomjs yang lebih popular adalah nod-phantom dan phantomjs-node. Saya baru -baru ini mula membangunkan modul nod Phantomjs saya sendiri yang dipanggil Ghostbuster. Ghostbuster adalah serupa dengan nod-phantom, tetapi cuba untuk mengurangkan panggilan balik dengan menyediakan perintah yang lebih kuat. Semakin sedikit panggilan ke Phantomjs, semakin sedikit masa anda membazirkan komunikasi di websocket. Pilihan lain ialah Zombie.js, penyemak imbas tanpa kepala yang dibina di atas JSDOM. Zombie tidak begitu kuat seperti Phantomjs, tetapi ia adalah modul Node.js sebenar.

Kesimpulan

Selepas membaca artikel ini, anda harus mempunyai pemahaman asas tentang Phantomjs. Salah satu ciri terbaik Phantomjs adalah kemudahan penggunaannya. Jika anda sudah biasa dengan JavaScript, lengkung pembelajaran kecil. Phantomjs juga menyokong pelbagai ciri lain yang tidak diliputi dalam artikel ini. Seperti biasa, saya menggalakkan anda melihat dokumentasi. Terdapat juga beberapa contoh yang menunjukkan fungsi penuh Phantomjs!

Soalan Lazim Mengenai WebKit dan Phantomjs

Apakah perbezaan utama antara Webkit dan Phantomjs tanpa kepala?

WebKit dan Phantomjs tanpa kepala adalah kedua -dua alat untuk mengautomasikan pelayar web. Walau bagaimanapun, perbezaan utama adalah fungsi mereka. Webkit tanpa kepala adalah penyemak imbas tanpa antara muka pengguna grafik yang dapat mengendalikannya secara programatik untuk automasi, ujian, dan penyampaian sisi pelayan. Phantomjs, sebaliknya, adalah penyemak imbas tanpa henti untuk mengautomasikan interaksi web, menyediakan API JavaScript yang menyokong navigasi automatik, tangkapan skrin, tingkah laku pengguna, dan pernyataan.

Adakah phantomjs masih dikekalkan?

Sehingga Mac 2018, PhantomJS tidak lagi diselenggarakan secara aktif. Alasan utama ialah kemunculan pelayar tanpa kepala moden seperti pelayar tanpa kepala Chrome dan pelayar tanpa kepala Firefox, yang memberikan lebih banyak ciri dan sokongan yang lebih baik.

Apakah beberapa alternatif kepada Phantomjs?

Oleh kerana PhantomJs tidak lagi dikekalkan, beberapa alternatif muncul. Ini termasuk PupPeteer, perpustakaan nod yang menyediakan API peringkat tinggi untuk mengawal Chrome atau Chromium melalui Protokol DevTools, dan Selenium Webdriver, koleksi sumber terbuka API untuk ujian automatik aplikasi web.

bagaimana phantomjs berfungsi?

Phantomjs berfungsi dengan menyediakan API JavaScript yang menyokong navigasi automatik, tangkapan skrin, tingkah laku pengguna, dan pernyataan. Ia adalah webkit tanpa kepala yang boleh ditulis menggunakan API JavaScript. Ia mempunyai sokongan cepat dan asli untuk pelbagai piawaian web: Pemprosesan DOM, pemilih CSS, JSON, CANVAS, dan SVG.

Bolehkah saya menggunakan phantomjs untuk merangkak web?

Ya, phantomjs boleh digunakan untuk merangkak web. Ia membolehkan anda memuat dan memanipulasi laman web menggunakan perpustakaan biasa seperti API DOM standard atau jQuery.

bagaimana memasang phantomjs?

Apakah peranan Webkit tanpa kepala dalam penyampaian sisi pelayan?

Webkit tanpa kepala memainkan peranan penting dalam penyerahan sisi pelayan, kerana ia membolehkan pelayan untuk membuat halaman JavaScript pra-membuat, menukarnya ke HTML, dan kemudian hantarnya ke klien. Ini meningkatkan prestasi dan SEO aplikasi web anda.

Bolehkah saya menggunakan webkit tanpa kepala untuk ujian automatik?

Ya, WebKit tanpa kepala adalah alat yang sangat baik untuk ujian automatik. Ia membolehkan anda menjalankan ujian dalam persekitaran penyemak imbas sebenar tanpa memerlukan UI yang kelihatan.

bagaimana memasang webkit tanpa kepala?

Proses pemasangan WebKit tanpa kepala bergantung pada alat khusus yang anda gunakan. Sebagai contoh, jika anda menggunakan dalang, anda boleh memasangnya melalui npm menggunakan arahan "NPM Pasang Puppeteer".

Apakah kelebihan menggunakan Webkit tanpa kepala berbanding pelayar automatik tradisional?

Webkit tanpa kepala mempunyai beberapa kelebihan berbanding pelayar tradisional dalam automasi. Ia lebih cepat kerana ia tidak mengambil masa untuk menjadikan visual. Ia juga membolehkan pelayaran automatik, skrip, yang sangat berguna untuk ujian dan merangkak web.

Atas ialah kandungan terperinci WebKit dan Phantomjs tanpa kepala. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Python vs JavaScript: Komuniti, Perpustakaan, dan SumberPython vs JavaScript: Komuniti, Perpustakaan, dan SumberApr 15, 2025 am 12:16 AM

Python dan JavaScript mempunyai kelebihan dan kekurangan mereka sendiri dari segi komuniti, perpustakaan dan sumber. 1) Komuniti Python mesra dan sesuai untuk pemula, tetapi sumber pembangunan depan tidak kaya dengan JavaScript. 2) Python berkuasa dalam bidang sains data dan perpustakaan pembelajaran mesin, sementara JavaScript lebih baik dalam perpustakaan pembangunan dan kerangka pembangunan depan. 3) Kedua -duanya mempunyai sumber pembelajaran yang kaya, tetapi Python sesuai untuk memulakan dengan dokumen rasmi, sementara JavaScript lebih baik dengan MDNWebDocs. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.

Dari C/C ke JavaScript: Bagaimana semuanya berfungsiDari C/C ke JavaScript: Bagaimana semuanya berfungsiApr 14, 2025 am 12:05 AM

Peralihan dari C/C ke JavaScript memerlukan menyesuaikan diri dengan menaip dinamik, pengumpulan sampah dan pengaturcaraan asynchronous. 1) C/C adalah bahasa yang ditaip secara statik yang memerlukan pengurusan memori manual, manakala JavaScript ditaip secara dinamik dan pengumpulan sampah diproses secara automatik. 2) C/C perlu dikumpulkan ke dalam kod mesin, manakala JavaScript adalah bahasa yang ditafsirkan. 3) JavaScript memperkenalkan konsep seperti penutupan, rantaian prototaip dan janji, yang meningkatkan keupayaan pengaturcaraan fleksibiliti dan asynchronous.

Enjin JavaScript: Membandingkan PelaksanaanEnjin JavaScript: Membandingkan PelaksanaanApr 13, 2025 am 12:05 AM

Enjin JavaScript yang berbeza mempunyai kesan yang berbeza apabila menguraikan dan melaksanakan kod JavaScript, kerana prinsip pelaksanaan dan strategi pengoptimuman setiap enjin berbeza. 1. Analisis leksikal: Menukar kod sumber ke dalam unit leksikal. 2. Analisis Tatabahasa: Menjana pokok sintaks abstrak. 3. Pengoptimuman dan Penyusunan: Menjana kod mesin melalui pengkompil JIT. 4. Jalankan: Jalankan kod mesin. Enjin V8 mengoptimumkan melalui kompilasi segera dan kelas tersembunyi, Spidermonkey menggunakan sistem kesimpulan jenis, menghasilkan prestasi prestasi yang berbeza pada kod yang sama.

Beyond the Browser: JavaScript di dunia nyataBeyond the Browser: JavaScript di dunia nyataApr 12, 2025 am 12:06 AM

Aplikasi JavaScript di dunia nyata termasuk pengaturcaraan sisi pelayan, pembangunan aplikasi mudah alih dan Internet of Things Control: 1. Pengaturcaraan sisi pelayan direalisasikan melalui node.js, sesuai untuk pemprosesan permintaan serentak yang tinggi. 2. Pembangunan aplikasi mudah alih dijalankan melalui reaktnatif dan menyokong penggunaan silang platform. 3. Digunakan untuk kawalan peranti IoT melalui Perpustakaan Johnny-Five, sesuai untuk interaksi perkakasan.

Membina aplikasi SaaS Multi-penyewa dengan Next.js (Integrasi Backend)Membina aplikasi SaaS Multi-penyewa dengan Next.js (Integrasi Backend)Apr 11, 2025 am 08:23 AM

Saya membina aplikasi SaaS multi-penyewa berfungsi (aplikasi edTech) dengan alat teknologi harian anda dan anda boleh melakukan perkara yang sama. Pertama, apakah aplikasi SaaS multi-penyewa? Aplikasi SaaS Multi-penyewa membolehkan anda melayani beberapa pelanggan dari Sing

Cara Membina Aplikasi SaaS Multi-Tenant dengan Next.js (Integrasi Frontend)Cara Membina Aplikasi SaaS Multi-Tenant dengan Next.js (Integrasi Frontend)Apr 11, 2025 am 08:22 AM

Artikel ini menunjukkan integrasi frontend dengan backend yang dijamin oleh permit, membina aplikasi edtech SaaS yang berfungsi menggunakan Next.Js. Frontend mengambil kebenaran pengguna untuk mengawal penglihatan UI dan memastikan permintaan API mematuhi dasar peranan

JavaScript: meneroka serba boleh bahasa webJavaScript: meneroka serba boleh bahasa webApr 11, 2025 am 12:01 AM

JavaScript adalah bahasa utama pembangunan web moden dan digunakan secara meluas untuk kepelbagaian dan fleksibiliti. 1) Pembangunan front-end: Membina laman web dinamik dan aplikasi satu halaman melalui operasi DOM dan kerangka moden (seperti React, Vue.js, sudut). 2) Pembangunan sisi pelayan: Node.js menggunakan model I/O yang tidak menyekat untuk mengendalikan aplikasi konkurensi tinggi dan masa nyata. 3) Pembangunan aplikasi mudah alih dan desktop: Pembangunan silang platform direalisasikan melalui reaktnatif dan elektron untuk meningkatkan kecekapan pembangunan.

Evolusi JavaScript: Trend Semasa dan Prospek Masa DepanEvolusi JavaScript: Trend Semasa dan Prospek Masa DepanApr 10, 2025 am 09:33 AM

Trend terkini dalam JavaScript termasuk kebangkitan TypeScript, populariti kerangka dan perpustakaan moden, dan penerapan webassembly. Prospek masa depan meliputi sistem jenis yang lebih berkuasa, pembangunan JavaScript, pengembangan kecerdasan buatan dan pembelajaran mesin, dan potensi pengkomputeran IoT dan kelebihan.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.