PowerShell:
Tải trang web

Cách thực hiện:

Dưới đây là bùa phép ma thuật để tải một trang web sử dụng PowerShell. Chúng ta sẽ sử dụng Invoke-WebRequest.

# Lấy nội dung của example.com
$response = Invoke-WebRequest -Uri "http://example.com"

# Đây là những gì bạn nhận được
$response.Content

Kết quả mẫu:

<!doctype html>
<html>
<head>
    <title>Example Domain</title>
    ...
    <!--  tiếp tục như vậy -->
</head>
...
</html>

Bạn có thể chỉ muốn văn bản, không có thẻ HTML. Hãy làm điều đó:

# Chỉ cần văn bản, làm ơn
$response.ParsedHtml.body.innerText

Sâu hơn nữa

Ngày xưa, PowerShell không có cmdlet Invoke-WebRequest tuyệt vời. Các lập trình viên sẽ sử dụng lớp .NET System.Net.WebClient hoặc phải nhờ đến các công cụ bên ngoài. Bây giờ, tất cả đã được tích hợp sẵn, làm cho công việc của chúng ta đơn giản hơn.

Invoke-WebRequest cung cấp nhiều hơn là chỉ nội dung. Tiêu đề, trạng thái, và thông tin phiên – tất cả đều có mặt. Nếu bạn đang vọc vạch với API, bạn sẽ yêu thích Invoke-RestMethod như một lựa chọn tập trung.

Bên dưới lớp vỏ, các cmdlet này dựa vào lớp .NET HttpClient cồng kềnh, chứa đựng độ tin cậy và chức năng rộng rãi.

Và, nếu bạn đang không kiên nhẫn chờ đợi trang web tải xuống, Invoke-WebRequest cũng hỗ trợ các thao tác bất đồng bộ. Tuy nhiên, đó là chủ đề cho một ngày khác.

Xem thêm