domcurl: curl + JavaScript

Trong một thời gian dài tôi đã suy nghĩ về tương lai của trang web như thế nào khi chúng ta đi qua những gì chúng ta biết là trình duyệt web truyền thống. Tôi gọi đây là The Headless Web và tôi muốn trả lời là “Nếu mọi thứ được cung cấp bởi ‘The Web’, nhưng bạn chưa bao giờ thấy một trình duyệt?”. Cụ thể, tôi tin rằng nếu bạn có quyền truy cập vào một trình duyệt hoàn chỉnh, nhưng không hiển thị với “chrome” thì có một cơ hội lớn cho một bộ dịch vụ mới.

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.

Phải mất một lúc, nhưng tôi nghĩ chúng ta đang đến đó.

Tôi say mê bởi Puppeteer. Puppeteer là một thư viện JavaScript nằm trên cùng của giao thức Công cụ dành cho Chrome Dev và nó cho phép bạn tự động hóa và viết kịch bản trình duyệt Chrome.

Công việc hàng ngày của tôi liên quan đến rất nhiều máy chủ web và việc bảo đảm. Giống như nhiều nhà phát triển, tôi sử dụng curl để thực hiện yêu cầu tới máy chủ web và kiểm tra phản hồi. Đó là một tiện ích tuyệt vời, tuy nhiên trong thế giới ngày nay nhiều nhà phát triển đang xây dựng các trang web được xây dựng bằng cách sử dụng rất nhiều JavaScript và điều này làm cho nó không thể kiểm tra phản ứng hoàn chỉnh.

Tôi quyết định tạo một tiện ích giống như cUrl để tìm nạp tài nguyên và chạy JavaScript trên trang được gọi là domcurl.

domcurl là một ứng dụng NodeJS nhỏ sử dụng Puppeteer và có thể được cài đặt bằng cách ban hành lệnh sau:npm i domcurl. Giống như lệnh curl bạn có thể tạo mộtdomcurl [url]đơn giản để tìm nạp tài nguyên và chạy JS trên trang.

Nó không tái tạo tất cả các curl, nhưng nó khá nổi bật với các tính năng sau đây.

  • Chỉ định url để tìm nạp. tức là, domcurl [url] * Kiểm tra các tiêu đề phản hồi bằng -v. tức là, domcurl -v [url] * Đặt cookie với -b tức là,domcurl [url] -b "test = hello; Tên miền = airhorner.com; HttpOnly;" -b "hello = world; Domain = airhorner.com; HttpOnly;"* Thêm tiêu đề tùy chỉnh bằng cách sử dụng đối số-H. * Đặt thủ công STDOUT bằng -o và STDERR bằng--stderr

Tôi đang tìm kiếm nó khá hữu ích eventhough nó không thể dòng các kết quả như curl có thể bởi vì nó phải chờ cho CSS và JS được tải xuống và thực hiện.

Tôi cũng đã tự do thêm một vài tính năng bổ sung dành riêng cho JavaScript và Chrome.

  • Xuất ra tệp theo dõi Công cụ tìm kiếm Chrome (bao gồm cả màn hình nóng.) Domcurl --url https://example.com --trace test.json * Bao gồm nó dưới dạng một mô-đun JavaScript nếu bạn có nhu cầu tích hợp nó vào bất kỳ các ứng dụng hiện có của bạn.
const {domcurl} = require('domcurl');
domcurl(`https://paul.kinlan.me/`, {});

Trong khi công cụ này là một bản demo hơn là một dịch vụ đầy đủ, tôi nghĩ The Headless Web đang trưởng thành và các công cụ như Puppeteer và những công cụ khác sẽ giúp chúng tôi nhận ra sức mạnh tiếp tục của web. Chúng tôi chỉ cần xây dựng cho nó.

Paul Kinlan

Trying to make the web and developers better.

RSS Github Medium