domcurl: curl + JavaScript

Untuk waktu yang lama saya telah memikirkan tentang masa depan web seperti ketika kita melewati apa yang kita kenal sebagai browser web tradisional. Saya menyebutnya The Headless Web dan saya ingin menjawab adalah “Bagaimana jika semuanya didukung oleh ‘Web’, tetapi Anda tidak pernah melihat browser?”. Secara khusus saya percaya bahwa jika Anda memiliki akses ke browser lengkap, tetapi tidak terlihat oleh “chrome” maka ada peluang besar untuk satu set layanan baru.

Using the browser as a service is an incredible opportunity. It allows us to take the declarative HTML and combine it with the developer defined procedural execution of JavaScript and run deep analysis on the content.

Running a browser on the server will allow us to more easily build services which parse data that is generated dynamically, it will allow us to more easily us run our own logic against the logic in a page (form fill as an example) and I believe that it will open up the ability to more effectively run actions against data embedded on the page.

Sudah lama, tapi saya pikir kita sudah sampai di sana.

Saya terpikat oleh Puppeteer. Dalang adalah pustaka JavaScript yang berada di atas protokol Alat Chrome Dev dan memungkinkan Anda untuk mengotomatiskan dan membuat skrip browser Chrome.

Pekerjaan sehari-hari saya melibatkan banyak server web dan memastikan debugging. Seperti banyak pengembang, saya menggunakan curl untuk membuat permintaan ke server web dan memeriksa responsnya. Ini adalah utilitas yang luar biasa, namun di dunia saat ini banyak pengembang membangun situs yang dibangun menggunakan banyak JavaScript dan ini membuatnya tidak mungkin untuk memeriksa respons lengkap.

Saya memutuskan untuk membuat utilitas seperti cUrl untuk mengambil sumber daya dan menjalankan JavaScript pada halaman bernama domcurl.

domcurl adalah aplikasi NodeJS kecil yang menggunakan Puppeteer dan dapat diinstal dengan mengeluarkan perintah berikut:npm i domcurl. Seperti perintah curl Anda dapat mengeluarkandomcurl [url]sederhana untuk mengambil sumber daya dan menjalankan JS pada halaman.

Itu tidak mereplikasi semua curl, tetapi cukup fitur dengan fitur-fitur berikut.

  • Tentukan url untuk diambil. yaitu, domcurl [url] * Periksa header tanggapan dengan -v. yaitu, domcurl -v [url] * Setel cookie dengan -b i.e,domcurl [url] -b "test = hello; Domain = airhorner.com; HttpOnly;" -b "hello = world; Domain = airhorner.com; HttpOnly;"* Tambahkan header khusus menggunakan argumen-H. * Secara manual mengatur STDOUT dengan -o dan STDERR dengan--stderr

Saya merasa cukup berguna meskipun tidak dapat melakukan streaming hasil seperti curl dapat karena harus menunggu CSS dan JS untuk diunduh dan dieksekusi.

Saya juga mengambil kebebasan untuk menambahkan beberapa fitur tambahan yang khusus untuk JavaScript dan Chrome.

  • Keluaran file pelacakan Alat Chrome Dev (termasuk layar hots.) Domcurl --url https://example.com --trace test.json * Sertakan sebagai modul JavaScript jika Anda perlu mengintegrasikannya ke dalam dari aplikasi Anda yang ada.
const {domcurl} = require('domcurl');
domcurl(`https://paul.kinlan.me/`, {});

Sementara alat ini lebih merupakan demo daripada layanan penuh, saya pikir The Headless Web menjadi dewasa dan alat seperti Puppeteer dan yang lainnya akan membantu kami mewujudkan kekuatan web yang berkelanjutan. Kami hanya perlu membangunnya.

Paul Kinlan

Trying to make the web and developers better.

RSS Github Medium